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
December 17, 2022
Technology
0
1.3k
サーバレスでVODとECをリニューアルして、さらにくっつけてみました!
Kazuki Miura
December 17, 2022
Tweet
Share
More Decks by Kazuki Miura
See All by Kazuki Miura
Lambdaと地方とコミュニティ
miu_crescent
2
370
re:Play ってこんなイベントです、オープニングとクロージングも #reinventhokkaido
miu_crescent
0
79
JAWS-UG 事務局 の「これまで」から みんなで「ここから」を考えよう
miu_crescent
2
180
寒冷地稲作の歴史にみるコミュニティ
miu_crescent
2
160
シャアズ ビリービング アワズプレイ
miu_crescent
1
23
完 全 未 経 験 か ら自 社 サ ー ビ ス の 開 発 運用 を行 う ま で
miu_crescent
0
41
Case Study for Repurposing Video Content With Generative AI
miu_crescent
0
7
完全未経験から自社サービスの 開発運用を行うまで
miu_crescent
1
39
APIのドキュメント化何使ってますか?
miu_crescent
3
220
Other Decks in Technology
See All in Technology
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
6
670
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.1k
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
AIチャットボット開発への生成AI活用
ryomrt
0
170
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
960
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How to train your dragon (web standard)
notwaldorf
88
5.7k
A Philosophy of Restraint
colly
203
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Agile that works and the tools we love
rasmusluckow
327
21k
A designer walks into a library…
pauljervisheath
203
24k
Facilitating Awesome Meetings
lara
50
6.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
How STYLIGHT went responsive
nonsquared
95
5.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
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