Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
エンタメ方向のTを広げよう!Werner先生の クロージングキーノートを 深掘りするための小ネタ10
miu_crescent
PRO
1
78
Amazon Bedrockを活用した 報道向け文字起こしシステムの開発
miu_crescent
PRO
0
71
us-east-1 の障害が 起きると なぜ ソワソワするのか
miu_crescent
PRO
3
1k
完全未経験からAWSと共に セキュリティに立ち向かった半生
miu_crescent
PRO
1
110
Stripe Terminal を触ってみた!!
miu_crescent
PRO
0
63
アクシズを探せ! 各勢力の位置関係についての考察
miu_crescent
PRO
1
57
地方だからできた! 東北でのAWS事例を一挙紹介!#地方だからできる
miu_crescent
PRO
0
33
APIからデータベースまで、全てサーバレスで作ってみよう!
miu_crescent
PRO
0
23
「フィニッシャーズ・スマイル」の開発と当日運用のお話
miu_crescent
PRO
2
100
Other Decks in Technology
See All in Technology
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
320
学習データって増やせばいいんですか?
ftakahashi
2
330
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
5
1.5k
SREには開発組織全体で向き合う
koh_naga
0
200
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
200
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
670
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
360
文字列の並び順 / Unicode Collation
tmtms
3
580
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
130
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.5k
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
350
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
180
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Producing Creativity
orderedlist
PRO
348
40k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Agile that works and the tools we love
rasmusluckow
331
21k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
RailsConf 2023
tenderlove
30
1.3k
4 Signs Your Business is Dying
shpigford
186
22k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
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