Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MangaTechエンジニアの日曜アプリ開発の勧め - AWS Amplify 時代の安くて ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
dublook
May 10, 2019
Programming
1.9k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MangaTechエンジニアの日曜アプリ開発の勧め - AWS Amplify 時代の安くて 強いDB設計
S3をデータベースとして使うメリット
・需要予測がいらない!
・料金が安い。めっちゃ安い
・大抵DBが一番高い
・大きなデータも小さなデータも入れられる
・同時大量書き込みでも速い
dublook
May 10, 2019
More Decks by dublook
See All by dublook
好きなマンガ読める率100%にするために、AWS AmplifyでVueアプリをデプロイしてみた
dublook
0
160
Other Decks in Programming
See All in Programming
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
110
Java 27新機能 / Java 27 new features
kishida
2
140
AHC070解法紹介
eijirou
0
120
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
120
新卒PdEのリアル
ryu1013
1
500
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
130
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.2k
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
110
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
710
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
500
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
290
GraphQLとの向き合い方2022年版
quramy
50
15k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
540
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
320
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
AWS Amplify 時代の安くて 強いDB設計 MangaTechエンジニアの日曜アプリ開発の勧め 2019-05-10 @TechDo
今日のゴール ◉ 好きなことについてなんかアプリ作ってみよ ◉ AWS Amplify使ってみよ ◉ サーバーレス, DBレスって楽チンだね ってなること!
2
今日やらないこと ◉ FirebaseとAmplifyどっちがいいの? ◦ Firebase使ったことない・・ ◦ 基本AWSに慣れているゆえ 3
好きなマンガ読める率100%へ! スキ100! 1 4
5 自己紹介
6 じゃなくて ねこ紹介!
◉ スキ100!プロジェクトの公式キャラクター ◉ 普段はワインバーを経営 (ソムリエ有資格猫) ◉ マンガ好きが高じて、たまにお客さんに すっとオススメしてくれる ◉ 生みの親はレポ漫画家の伊佐坂みつほ先生
ソムねこ 7 伊佐坂イエローで おなじみ!
8 つまり アプリ作りが盛り上がって キャラまで作っちゃった マンガ好きの悩みを見かねた ソムねこが来てくれた!
自己紹介 9 マンガテック エンジニア! ふーん
“ Amazonのレコメンドもいいけど、 とにかく好きなマンガだけ オススメしてくれよ!!! 10 スキ100!のWhy
こんな人を助けたい! 常に自分の知 らない、ステキ な新刊を見つけ たい! マンガを毎月か なりの数を買っ ている Kindleで マンガを読んで
いる 11
こんな感じ 12
こんな感じ 13
詳細はこちら 14 suki100.com
“ 機能要望、わがまま言ってすいません笑 でも愛用しているが故です! 15 苅田 明史 (マンガ新聞創業者)
新規アプリ?? まずはAWS Amplifyに頼れ! スキ100!アプリで使い方をつかめ 2 16
AWS Amplifyってなに? 17 https://aws-amplify.github.io/docs/
18 いっぱいあり過ぎて どれ使えばいいかわかんない
AWS Amplifyってざっくりいうと、 19 親切な「お節介」 • Amplifyがないとできないことはない • 「単純なアプリ作るなら、これ使いなよ」 • 「どうせこういう使い方するだろうから、ちょっと便
利にしといたよ」
20 Storageは S3かDynamo 認証は Cognito! ホスティングは S3->CloundFront
ナイスおせっかい! 21 • AWSのサービス名を意識しなくていい ◦ (あとから意識することもできる) • 「単純なアプリ作るなら、これ使いなよ」 • 「どうせこういう使い方するだろうから、ちょっと便
利にしといたよ」
認証の追加 22 https://aws-amplify.github.io/docs/js/authentication
データベース (Storage) の追加 23 https://aws-amplify.github.io/docs/js/storage
ウェブアプリのホスティングを追加 24 https://aws-amplify.github.io/docs/cli/hosting?sdk=js
25 このコマンドたちを 打ってできた構成
Amplify Console 26 One more thing... 開発環境 本番環境
バージョンの切り戻しもワンクリックで 27
ハマったポイント 28 ◉ Amplifyのプロジェクト内で一つのStackができる ◦ Serverless frameworkなどで共通のS3をいじった りできない ◦ 対策:
コンソール画面から手動で設定変更 ◦ (ほんとはymlでできると思うが手でやった方が早かった )
AmplifyでNOデータベース Amplify 時代の安くて強いDB設計 3 29
再掲: データベース (Storage) の追加 30 https://aws-amplify.github.io/docs/js/storage
この質問の意図は? 31 S3 or DynamoDB
32 S3って画像とか置くところ じゃないの??
事実: スキ100!はS3だけで作ってます 33 ランキングも ユーザーに合 わせた新刊通 知も ユーザーごと の表示設定も フィルター情報
も
ただの変態プレイじゃない: S3を使うメリット 34 ◉ .需要予測がいらない! ◉ 料金が安い。めっちゃ安い ◦ 大抵DBが一番高い ◉
大きなデータも小さなデータも入れられる ◉ 同時大量書き込みでも速い
AmplifyにおけるS3の権限テンプレ 35 public/ protected/ private/ 誰でもWRITE/READ可 ログインユーザーが自分のと ころだけWRITE/READ可 READは誰でも可能 WRITEはログインユーザーのみ
36 再掲: スキ100!の構成
◉ 整合性 ◦ 当然「結果整合性」 ◦ WRITEは非正規化して一回で済ませる ◦ DELETEは、論理削除データをINSERTする 37 S3でデータモデリングするコツ
◉ 検索性 ◦ インデックスは遅延して作成 ▪ S3 event -> SQS ->
Lambdaで実装 ◦ なるべくワンリクエストで済むデータを事前に作っとく 38 S3でデータモデリングするコツ
◉ パフォーマンス ◦ S3のクエリを理解する ▪ キーによる前方一致検索は可能 ▪ コンテンツの一括取得はできない ◦ 「キー」もデータである
39 S3でデータモデリングするコツ
キー設計 ◉ 「持ってる」ボタンが押された時 ◦ private/futami/onepiece1/20190510164001/have/INSERT.json ◉ 「元に戻す」ボタンが押された時 ◦ private/futami/onepiece1/20190510164003/have/DELETE.json 40
「元に戻す」のデータモデリング
読み込み時 ◉ Storage.vault.list({ prefix: “futami/” }) ◦ private/futami/onepiece1/20190510164001/have/INSERT.json ◦ private/futami/onepiece1/20190510164003/have/DELETE.json
◉ → ロジックでタイムスタンプを比較する ◦ この場合は、”「読まない」ではない” になる 41 「元に戻す」のデータモデリング
◉ データ量が冗長になるので、いつか削除する ◦ Compaction ◦ 日次バッチとかで ◦ それでも長く使うと、めっちゃデータが増えちゃう ▪ なんか対策考える
→ 多分大変 42 「元に戻す」のデータモデリング
43 データモデリングの話は Qiitaに書きたい
大きな視座: 「頼る」ことで歴史が進む 44 https://slideship.com/users/@marcy-terui/presentations/2017/11/5vUYExsSUrPbyjyjKA7J99/?p=6
45 好きなマンガ読める率 100%へ!
46 さあ、みんな Amplifyで日曜エンジニアリング!