Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバレスでVODとECをリニューアルして、さらにくっつけてみました!
Search
Kazuki Miura
PRO
December 17, 2022
Technology
0
1.4k
サーバレスでVODとECをリニューアルして、さらにくっつけてみました!
Kazuki Miura
PRO
December 17, 2022
Tweet
Share
More Decks by Kazuki Miura
See All by Kazuki Miura
「入門 OpenTelemetry」 入門
miu_crescent
PRO
1
58
AZ 名とAZ ID の違いを 何度でも言うよ
miu_crescent
PRO
1
210
AWS Step Functions で マネコンとCDKの二刀流!
miu_crescent
PRO
1
53
AWS MediaServices の概要と活用事例
miu_crescent
PRO
2
95
ワイキキサークルホテルとその過ごし方
miu_crescent
PRO
1
260
私のawsの学び方、社外へ飛び出そう
miu_crescent
PRO
1
130
地方だからできた! 東北でのAWS事例を一挙紹介!
miu_crescent
PRO
1
170
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
210
AWSにおける生成AIでの動画生成について
miu_crescent
PRO
1
150
Other Decks in Technology
See All in Technology
Delegate authentication and a lot more to Keycloak with OpenID Connect
ahus1
0
240
あなたの知らない OneDrive
murachiakira
0
190
いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか(改)
nullpo_head
7
2.8k
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
2
20k
[CVPR2025論文読み会] Linguistics-aware Masked Image Modelingfor Self-supervised Scene Text Recognition
s_aiueo32
0
200
プロダクトエンジニアリングで開発の楽しさを拡張する話
barometrica
0
220
GCASアップデート(202506-202508)
techniczna
0
230
認知戦の理解と、市民としての対抗策
hogehuga
0
130
Rethinking Incident Response: Context-Aware AI in Practice - Incident Buddy Edition -
rrreeeyyy
0
130
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
220
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
quiver
2
1.1k
我々は雰囲気で仕事をしている / How can we do vibe coding as well
naospon
2
180
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7.1k
Unsuck your backbone
ammeep
671
58k
Become a Pro
speakerdeck
PRO
29
5.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
We Have a Design System, Now What?
morganepeng
53
7.7k
It's Worth the Effort
3n
187
28k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Faster Mobile Websites
deanohume
309
31k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
470
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Producing Creativity
orderedlist
PRO
347
40k
Transcript
サーバレスでVODとECを リニューアルして さらにくっつけてみました! 三浦一樹 @miu_crescent
三浦一樹 HTB 自社サービスの 開発チームのキャプテン 開発初めてやっと 3年経ちました AWS + SaaS が多い
with
システムを作りたいんじゃない ビジネスをしたいんだ
None
EVENTDRIVEN EVENTDRIVEN EVENTDRIVEN
VPC LESS VPC LESS VPC LESS OS LESS OS LESS
OS LESS EVENTDRIVEN EVENTDRIVEN EVENTDRIVEN
2019年はお世話になりました
いいぞ! いいぞ! いいぞ! いろんな人にオススメされて
素直に全部やってみました
2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.10〜 2020.05〜 2020.07〜 2020.10〜 有料ライブ配信
Lift & Shift VODオフロード 完全リニューアル 2021.04〜 2021.08 〜 2021.10〜 リニューアル ちょっとだけ サーバーレス化 2022.04 〜 2022.03〜 React GraphQL TypeScript Nuxt.js JavaScript 開発 完全リニューアル 完全リニューアル 福岡以降でリリースしたやつ 2022.09 〜 固定化 Lambda
2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.10〜 2020.05〜 2020.07〜 2020.10〜 有料ライブ配信
Lift & Shift VODオフロード 完全リニューアル 2021.04〜 2021.08 〜 2021.10〜 リニューアル ちょっとだけ サーバーレス化 2022.04 〜 2022.03〜 React GraphQL TypeScript Nuxt.js JavaScript 開発 完全リニューアル 完全リニューアル 2022.09 〜 固定化 Lambda 福岡以降でリリースしたやつ
VOD EC 2012年4月から 2005年9月から
VOD EC 2012年4月から 2005年9月から Lift & Shift やだ!!!
VOD EC 2012年4月から 2005年9月から 共通垢運用 したい!
VOD EC 3 ヶ月くらいで フルスクラッチ 3 ヶ月くらいで フルスクラッチ 2012年4月から 2005年9月から
2022.04.28 〜 2022.03.01 〜 社内外の声から 大小合わせて 100以上の 機能改善
None
放送業界で賞をもらいまいた!
アーキテクチャ紹介
ワーナー先生が紹介してくれましたw
DynamoDB DynamoDB DynamoDB AppSync Amplify Amplify BFF ざっくりアーキテクチャ Frontend Backend
S3 S3 DynamoDB DynamoDB DynamoDB AppSync Amplify Amplify BFF ざっくりアーキテクチャ
Frontend Backend MediaConvert
S3 S3 DynamoDB DynamoDB DynamoDB AppSync Amplify Amplify BFF ざっくりアーキテクチャ
Frontend Backend MediaConvert
S3 S3 DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Amplify Amplify
BFF ざっくりアーキテクチャ Frontend Backend MediaConvert
S3 S3 DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Step Functions
API-GW Amplify Amplify BFF ざっくりアーキテクチャ Frontend Backend MediaConvert
S3 S3 DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Step Functions
API-GW Amplify Amplify BFF ざっくりアーキテクチャ Frontend Backend OIDC OIDC OIDC MediaConvert
S3 MediaConvert S3 DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Step
Functions API-GW Amplify Amplify 担当者向け CMS 倉庫 システム BFF ざっくりアーキテクチャ Frontend Backend OIDC OIDC OIDC
AWS Amplify
Amplify backend amplify-cli DynamoDB DynamoDB DynamoDB AppSync BFF Backend スキーマを書いて
AppSync の裏にある DynamoDB と その connection を定義し てデプロイ
Amplify backend +
Amplify backend 40 + DynamoDB Tables
Amplify backend amplify-cli Dynamo のテーブル同士を connection する。 マイページに 表示したいデータ AppSync
は amplify-CLI しばり AppSync を経て 一発で欲しいデータにアク セスできるように構築
Amplify backend GraphQL Transformer v1 のままです GraphQL Transformer v2 で新しくなったけど
一部機能が実現できなくな ったので、まだ更新できて ないです、、、
AWS AppSync
AppSync DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Step Functions API-GW
BFF query mutation subscription GraphQL API Pub/Sub API
AppSync DynamoDB DynamoDB DynamoDB AppSync BFF query GraphQL API フロント側で好きなデータ
を持ってこれる 基本的に最初に全部持ってき て、フロントで保持しちゃう 検索はフロントだけで実現
AppSync DynamoDB DynamoDB DynamoDB AppSync Lambda BFF mutation mutation subscription
Pub/Sub API
AppSync DynamoDB DynamoDB DynamoDB AppSync Lambda BFF mutation mutation subscription
Pub/Sub API websocket リロード無しで 画面更新が可能
None
AppSync クォータ が ちょっと特殊 トークン消費量 に注意
AWS Step Functions
100 State machines Step Functions + DynamoDB DynamoDB DynamoDB AppSync
Step Functions API-GW BFF
z Step Functions DynamoDB DynamoDB DynamoDB AppSync Step Functions API-GW
BFF Lambda API-GW API-GW + Lambda っていう構成がどんどん Step Functions に変化していった > Step Functions の中のLambda もゼロにしたいなぁ
Step Functions Workflow Studio がすごい!!
Step Functions GUI で作れる ASL とかYAML はもう 触らない できたらYAML コピ
って sls いれれCI/CD SDK が直接叩ける これが爆速で最高
Step Functions Step Functions 複雑な処理ってみなさん どうやってやってますか?
注文履歴 create 決済処理 〉 〉 発注履歴 作成 発送情報 発送リスト create
〉 発送指示 外部流通サービス 〉 注文履歴 update 更新
注文履歴 create 決済処理 〉 〉 発注履歴 作成 発送情報 発送リスト create
〉 発送指示 外部流通サービス 〉 注文履歴 update 更新
決済処理 メール送信 ユーザ向けデータ 保存 kintone 用保存 MAP 担当 社内用保存 配送業者用保存
ユーザが待つのは ここまで 購入確定ボタン押した後
None
None
None
None
None
決済処理 メール送信 ユーザ向けデータ 保存 kintone 用保存 MAP 担当 社内用保存 配送業者用保存
ユーザが待つのは ここまで 落ちた時、再起しやすい単位で分割
決済処理 メール送信 ユーザ向けデータ 保存 kintone 用保存 MAP 担当 社内用保存 配送業者用保存
ユーザが待つのは ここまで Design for Failure 再起動したら メールとか飛んじ ゃう 再起動しても影響 がない様に分割
Step Functions Step Functions 複雑な処理ってみなさん どうやってやってますか? ツイートとかLT とかで教えて!!
こういう細かい話も サーバーレスコミュニティで 共有していきたい!
札幌にて オフラインで会いましょう!! 三浦一樹 @miu_crescent