Under the Sea is an official AWS workshop delivered by AWS SAs and AWS Partners to help customers and partners to learn about AIOps with serverless architectures on AWS.

Overview

Under the Sea - AIOps with Serverless Workshop

Under the Sea is an exciting MMORPG developed by the famous entrepreneur behind Wild Rydes, the most popular unicorn taxi service in the world. This time the game design team went above and beyond to bring us a steam-punk adventure 20,000 leagues under the sea. The engineering team brought to live this technology masterpiece that can host hundreds of players simultaneously. To achieve the scalability requirements, the game's backend runs on AWS, mostly on serverless technology and containers. Under the Sea is available for PC and the most popular consoles.

As expected from a MMORPG, the players can choose to play collaboratively or compete against each other. They can face daring monsters, hunt precious treasures, collect amazing equipment, and so on. On specific quests, the players can also compete against each other and score points. Once a month, the top players on the global scoreboard earn real-life prizes! There are also seasonal events, where players can get unique items.

Because of the tight schedule, the engineering and ITOps teams didn't have time to properly configure their observability coverage. The game must keep its reputation of never being offline and always offer very low latency to maximize the player experience. Sometimes, there are unexpected traffic surges because of a sudden increase in the number of players. The team is still trying to figure out how to monitor the different serverless components, and detect possible throttling issues. They also want to minimize their mean time to investigate (MTTI) and mean time to recover (MTTR).

DISCLAIMER: Under the Sea, and all its complementary resources are provided without any guarantees, and you're not recommended to use it for production-grade workloads. The intention is to provide content to build and learn. Be sure of reading the licensing terms.

Deployment Instructions

The instructions to run this workshop are on the official page of the Under the Sea Workshop. You can go through the instructions alone, but for a richer experience we recommend to have it run by an AWS SA or by an AWS Partner.

Security

See CONTRIBUTING for more information.

License Summary

The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file.

The sample code within this documentation is made available under the MIT-0 license. See the LICENSE-SAMPLECODE file.

You might also like...

Marketing-redirect - Redirect your customers from your marketing page to the application they're paying for

Marketing Redirect Do you have a marketing page and an app with two separate, bu

Feb 11, 2022

CarCollectors is website for customers who want to rent a car

CarCollectors is website for customers who want to rent a car

CarCollectors is website that consumes the car api and the involvement api. It allows the user to browse a large collection of cars, like them, comment on them, and place a reservation order.

May 3, 2022

Open-source API to securely share data with customers.

Offer secure data pipelines to your customers' data warehouses, directly from your product. Slack · Website · Docs About Pipebird Direct, secure, and

Dec 23, 2022

Alluo Decentralised App (dapp) allowing customers to interact with the Alluo protocol

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Oct 21, 2022

🌸 A fast and fun way to learn Japanese alphabets: hiragana & katakana. Don't wait - learn now!

🌸 A fast and fun way to learn Japanese alphabets: hiragana & katakana. Don't wait - learn now!

Sakurator | Start learning 日本語 here Sakurator (Website publish date: ~4-6 April '22) - a personal trainer for learning Japanese alphabets (hiragana &

Jun 22, 2022

Trying to learn Svelte. Based off the official tutorial. Readme has notes!

Learning Svelte! A JavaScript library An open-source front end compiler Instead of using a virtual DOM, Svelte will directly update the DOM in an effi

Jul 5, 2022

Follow along with blog posts, code samples, and practical exercises to learn how to build serverless applications from your local Integrated development environment (IDE).

Follow along with blog posts, code samples, and practical exercises to learn how to build serverless applications from your local Integrated development environment (IDE).

Getting started with serverless This getting started series is written by the serverless developer advocate team @AWSCloud. It has been designed for d

Dec 28, 2022

New base script bot wa by Ramdani Official, don't forget to subscribe youtube Ramdani Official.

New base script bot wa by Ramdani Official, don't forget to subscribe youtube Ramdani Official.

Requirements • Installation • Thanks to • Official Group Bot • Donate Information bahasa Indonesia Ramdani Botz V17 adalah bot yang di ciptakan oleh R

Nov 1, 2022

A serverless AWS expense tracker API. AWS Lambda functions, API gateway, and Dynamodb are among the ingredients.

AWS-Serverless-API A serverless AWS expense tracker API. AWS Lambda functions API gateway Dynamodb Endpoints Create a new expense: Method: POST Body f

Jul 16, 2022
Comments
  • Updated DynamoDB and Simulator

    Updated DynamoDB and Simulator

    Issue #, if available: N/A

    Description of changes:

    • DynamoDB: Set DynamoDB read/write capacity on the Session table to PROVISIONED with a read/write capacity of 1
    • Updated arrival rate on simulator to 50 to trigger DynamoDB insights in DevOps guru

    By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

    opened by kadamsai-aws 0
  • Bump qs from 6.5.2 to 6.5.3 in /infrastructure/cdk

    Bump qs from 6.5.2 to 6.5.3 in /infrastructure/cdk

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /infrastructure/cdk

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /infrastructure/cdk

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump minimatch and aws-cdk-lib in /infrastructure/cdk

    Bump minimatch and aws-cdk-lib in /infrastructure/cdk

    Bumps minimatch to 3.1.2 and updates ancestor dependency aws-cdk-lib. These dependencies need to be updated together.

    Updates minimatch from 3.0.4 to 3.1.2

    Commits

    Updates aws-cdk-lib from 2.3.0 to 2.50.0

    Release notes

    Sourced from aws-cdk-lib's releases.

    v2.50.0

    Features

    • aws-ecs-patterns: entryPoint and command support within ApplicationLoadBalancedFargateService and ApplicationLoadBalancedEc2Service (#22609) (6925293), closes #17092
    • codedeploy: CodeDeploy deployment group construct for ECS (#22295) (efd24d1), closes #1559
    • core: automatic cross stack, cross region references (under feature flag) (#22008) (f1b5497)
    • ec2: Vpc supports reserving space for future AZs (#22705) (7b51ea9)
    • stepfunctions: add intrinsic functions (#22431) (8f85b08), closes #22068 #22629

    Bug Fixes

    • opensearch: log group policies ignore incorrect error code on delete (#22364) (ebba9e3)
    • revert jsii to version 1.69.0 (#22715) (0837c1a)
    • apigateway: race condition exists between stage and cfnaccount in specrestapi (#22671) (4cb008b), closes #18925
    • aws-events: restrict eventbus statementId to 64 characters (#22296) (fadbfc1), closes #22120 #21808
    • stepfunctions-tasks: athenaStartQueryExecution task generates invalid s3 arn (#22692) (6e0cb2b), closes #22608

    Alpha modules (2.50.0-alpha.0)

    Features

    • synthetics: aws synthetics runtime version syn-nodejs-puppeteer-3.8 (#22707) (228c865)

    v2.49.1

    Bug Fixes


    Alpha modules (2.49.1-alpha.0)

    v2.49.0

    Features

    Bug Fixes

    • eks: kubectl get handler output includes stderr (#22658) (66d1ed3)

    Alpha modules (2.49.0-alpha.0)

    v2.48.0

    Features

    ... (truncated)

    Changelog

    Sourced from aws-cdk-lib's changelog.

    2.50.0 (2022-11-01)

    Features

    • aws-ecs-patterns: entryPoint and command support within ApplicationLoadBalancedFargateService and ApplicationLoadBalancedEc2Service (#22609) (6925293), closes #17092
    • codedeploy: CodeDeploy deployment group construct for ECS (#22295) (efd24d1), closes #1559
    • core: automatic cross stack, cross region references (under feature flag) (#22008) (f1b5497)
    • ec2: Vpc supports reserving space for future AZs (#22705) (7b51ea9)
    • stepfunctions: add intrinsic functions (#22431) (8f85b08), closes #22068 #22629

    Bug Fixes

    • opensearch: log group policies ignore incorrect error code on delete (#22364) (ebba9e3)
    • revert jsii to version 1.69.0 (#22715) (0837c1a)
    • apigateway: race condition exists between stage and cfnaccount in specrestapi (#22671) (4cb008b), closes #18925
    • aws-events: restrict eventbus statementId to 64 characters (#22296) (fadbfc1), closes #22120 #21808
    • stepfunctions-tasks: athenaStartQueryExecution task generates invalid s3 arn (#22692) (6e0cb2b), closes #22608

    2.49.1 (2022-10-31)

    Bug Fixes

    2.49.0 (2022-10-27)

    Features

    Bug Fixes

    • eks: kubectl get handler output includes stderr (#22658) (66d1ed3)

    2.48.0 (2022-10-27)

    Features

    ... (truncated)

    Commits
    • f1b5497 feat(core): automatic cross stack, cross region references (under feature fla...
    • 31fe2e4 chore: npm-check-updates && yarn upgrade (#22653)
    • e5be100 feat(cfnspec): cloudformation spec v94.0.0 (#22599)
    • 9ab6d79 chore: npm-check-updates && yarn upgrade (#22561)
    • b4c2e4d chore: npm-check-updates && yarn upgrade (#22469)
    • e0c0b56 feat(synthetics): new runtime synthetics nodejs puppeteer 3 6 (#22374)
    • e9b07a7 chore: npm-check-updates && yarn upgrade (#22269)
    • f169d7f chore: version updates, including breaking changes in jsii (#22382)
    • 0358d51 feat(cfnspec): cloudformation spec v91.0.0 (#22305)
    • 87e2020 chore: npm-check-updates && yarn upgrade (#22170)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
AWS Samples
AWS Samples
Learn Web 2.0 and Web 3.0 Development using Next.js, Typescript, AWS CDK, AWS Serverless, Ethereum and AWS Aurora Serverless

Learn Web 2.0 Cloud and Web 3.0 Development in Baby Steps In this course repo we will learn Web 2.0 cloud development using the latest state of the ar

Panacloud Multi-Cloud Internet-Scale Modern Global Apps 89 Jan 3, 2023
AWS Lambda & Serverless - Developer Guide with Hands-on Labs. Develop thousands line of aws lambda functions interact to aws serverless services with real-world hands-on labs

AWS Lambda & Serverless - Developer Guide with Hands-on Labs UDEMY COURSE WITH DISCOUNTED - Step by Step Development of this Repository -> https://www

awsrun 35 Dec 17, 2022
A superfast and easy to use knowledge base to help your customers get the info they need, when they need it most.

A superfast and easy to use knowledge base to help your customers get the info they need, when they need it most. helpkb is an open-source Next.js (A

Mark Moffat 11 Dec 5, 2022
A Gun DB extension that ships secure* ephemeral messaging between Gun peers using Bugout, secured by Gun's SEA suite

Bugoff A Gun DB extension that ships secure* ephemeral messaging between Gun peers using Bugout, secured by Gun's SEA suite About Bugoff creates an SE

Daniel Raeder 14 Nov 12, 2022
This Next.js app is designed to be used with the Figment Learn Pathways, to help developers learn about various blockchain protocols such as Solana, NEAR, Secret, Polygon and Polkadot!

???? What is learn-web3-dapp? We made this decentralized application (dApp) to help developers learn about Web 3 protocols. It's a Next.js app that us

t0nto 8 Oct 1, 2022
MV* Architectures: Evax

MV* Architectures: Evax This project has been made by Mehdi BEN CHIKHA, Ghassen Daoud and Mouheb Ben chiekh. Architectural choice: we choose to use MV

Mehdi BEN CHIKHA 2 Mar 18, 2022
This is collection of the CNCF logos packed into a draw.io importable file to draw cloud native architectures

draw-io-cncf-shape This is collection of the CNCF logos packed into a draw.io importable file to draw cloud native architectures How to embed the shap

Jan-Otto Kröpke 10 Dec 26, 2022
For this workshop, we're going to learn more about cloud computing by exploring how to use Pulumi to build, configure, and deploy a real-life, modern application using Docker

For this workshop, we're going to learn more about cloud computing by exploring how to use Pulumi to build, configure, and deploy a real-life, modern application using Docker. We will create a frontend, a backend, and a database to deploy the Pulumipus Boba Tea Shop. Along the way, we'll learn more about how Pulumi works.

Kat Cosgrove 9 Dec 29, 2022
e-ONG, an authorial project, whose objective is to help ONGs to find people who need help or would like to help them

This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: npm start Runs the app in the developmen

Lucas Lima 2 Nov 11, 2022