🐡

【DynamoDB Awesome】DynamoDBを勉強する上で参考にさせていただいた記事-PMLinc

2024/02/08に公開

BackGround

※この記事は、私の勉強によって更新されていく記事です。
DynamoDBのschemaや運用するにあたって、参考にさせていただいた記事と何を学んだのかのsummaryを書いていく系の記事です。

背景として、技術検証を行う際に、過去どのような事例があったのかの事例調べを社内Slack Channelを利用して共有します。社内での情報共有コミュニケーションは、どのような記事が見られて成長していくのかの過程は、重要であり発信していくべきだと思います。
あと、学んだことを一から記事にするのは、車輪の再開発なので、すでに有志の方が書かれた記事をどう学んだのかについて書いていこうと思います。

useDynamoDB at Purpom Media Lab

Purpom Media Lab incでは、AWS Amplifyや、LambdaなどのServerless Stackを中心とした高速MVP構築及びサービス価値の検証を行っています。
https://purpom-media-lab.com/

プロダクトを構築する上でぶつかった技術課題を記事としてまとめています。

https://zenn.dev/p/purpom

PMLincでは、Amplifyを利用することで、必然的に、データベースは、Amplify Backendで使用される、DynamoDBを利用します。

https://docs.amplify.aws/gen2/build-a-backend/data/set-up-data/

Let' Start

開発体験を上げる系

DynamoDBのテーブル設計には試行錯誤が必要で、設計の間はローカルで作って壊して試していくのがおすすめ
https://www.m3tech.blog/entry/2023/08/25/110000

これについては、Amplify Gen2において、npx amplify sandboxで立ち上げると、個人用で試す用、開発者につき、壊しても良い、1環境開発環境が構築されてより開発者の体験が上がったという記事を下記で書きました。裏では、CDKのhotswap Deploymentsが動いてる。

https://zenn.dev/purpom/articles/12538dec010be8

hotswapについて
https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-CDK-Basic-3-AppDev_0831_v1.pdf

マルチテナントで管理したい系

データの管理で複数の会社の情報を管理したいという要件が出てくる。(マルチテナント)

ここで、絶対に起こしていけないインシデントは、会社Aでログインしてるのに、全く関係のない会社Bの情報が写ってる。である。これを起こさない用に、いくつかの手法で管理する。

公式のマルチテナントについて書かれた記事
https://aws.amazon.com/jp/blogs/apn/partitioning-pooled-multi-tenant-saas-data-with-amazon-dynamodb/

解決先は、Databaseごと分けるか? or 会社を分けるためのTenantIDを設置して区別する。

https://qiita.com/nakashun1129/items/406c6443234ed5624bf7

DynamoDBはAWS Consoleからカラムの内容を簡単に確認できてありがたいですね。
(RDSだと、色々準備必要で確認するのにめんどくさい)

LSIとGSIについて

Thinking....

PURPM MEDIA LAB Tech blog

Discussion