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
ワイキキサークルホテルとその過ごし方
miu_crescent
PRO
0
91
私のawsの学び方、社外へ飛び出そう
miu_crescent
PRO
0
73
地方だからできた! 東北でのAWS事例を一挙紹介!
miu_crescent
PRO
1
100
地方企業がクラウドを活用するヒント
miu_crescent
PRO
1
140
AWSにおける生成AIでの動画生成について
miu_crescent
PRO
1
89
Storage Browser for Amazon S3
miu_crescent
PRO
1
500
Amazon Nova Reel でカメラの動きを指示してみた
miu_crescent
PRO
0
45
Lambdaと地方とコミュニティ
miu_crescent
PRO
2
460
re:Play ってこんなイベントです、オープニングとクロージングも #reinventhokkaido
miu_crescent
PRO
0
130
Other Decks in Technology
See All in Technology
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
1
110
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
110
Cracking the Coding Interview 6th Edition
gdplabs
14
28k
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
180
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
3.7k
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.7k
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
190
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5k
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
250
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Bash Introduction
62gerente
611
210k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
A designer walks into a library…
pauljervisheath
205
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
570
Faster Mobile Websites
deanohume
306
31k
We Have a Design System, Now What?
morganepeng
51
7.4k
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