Slide 1

Slide 1 text

サーバレスで繋がる HTBの内製化ストーリー 三浦一樹 北海道テレビ放送株式会社 2023.6.13

Slide 2

Slide 2 text

担当事業内容 01 会社概要 02 内製化 〜勢い編〜 03 04 05 目次 06 まとめ 内製化 〜単発編〜 内製化 〜運用編〜

Slide 3

Slide 3 text

01 会社概要 ABOUT US

Slide 4

Slide 4 text

放送システム担当   ↓ データ放送担当   ↓ (いろいろあって)   ↓ 開発運用担当 三浦 一樹 - ABOUT ME - コンテンツビジネス局 ネットデジタル事業部 社内 37歳 秋田→東京→札幌 サウナ大好き

Slide 5

Slide 5 text

BtoB事業 BtoC事業 テレビのCMや番組提供 番組関連のイベント事業 放送収入 番組の配信や 関連グッズの販売など ファンの方に直接お届けする 放送外収入 北海道を対象とした特定地上基幹放送事業者 01 02 - ABOUT US -

Slide 6

Slide 6 text

02 担当事業内容 O UR BUSINE SS

Slide 7

Slide 7 text

動画配信事業 EC事業

Slide 8

Slide 8 text

動画配信事業 EC事業 8人のチーム エンジニア5名 (内SES 2名) ネットデジタル事業部

Slide 9

Slide 9 text

マーケティング 8人のチーム エンジニア5名 (内SES 2名) ネットデジタル事業部 他にも、いろいろやってます SNS動画支援 応募データ抽選 CMS管理 イベント用システム

Slide 10

Slide 10 text

いろいろありました

Slide 11

Slide 11 text

AWS勉強開始 2017年 初めての アプリケーション 開発 2019年 単発使用の アプリケーション 開発 2020年 定常サービス アプリケーション 開発 2022年 明るい未来 〜2030年 これまでの歩み 〜勢い編〜 〜単発編〜 〜運用編〜

Slide 12

Slide 12 text

03 内製化 〜勢い編〜 DEVEL O PMENT WITH MOM E N TUM

Slide 13

Slide 13 text

勉強しようとおもったきっかけ 放送・通信連携時代のメディア技術開発 フルスタックエンジニア オープンイノベーション クラウド #AWSSummit2017

Slide 14

Slide 14 text

最初は動画配信から AWS Elemental MediaLive AWS Elemental MediaPackage

Slide 15

Slide 15 text

もちろん最初は失敗も 配信サービス停止忘れて、40万円の請求、、

Slide 16

Slide 16 text

やってみた気づき

Slide 17

Slide 17 text

どうやってお客さんに届ける? AWS Elemental MediaLive AWS Elemental MediaPackage Amazon CloudFront フロントエンドが無いと サービス提供できない!!

Slide 18

Slide 18 text

ゼロからの勉強が必要なもの Linux / RDBMS / SQL / Network ... 普通はどうやるの? Amazon EC2 Amazon RDS Amazon VPC

Slide 19

Slide 19 text

ゼロからの勉強が必要なもの Linux / RDBMS / SQL / Network ... 普通はどうやるの? Amazon EC2 Amazon RDS Amazon VPC フロントエンドの前に、これも??

Slide 20

Slide 20 text

いや、待てよ、、

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

VPC LESS VPC LESS VPC LESS OS  LESS OS  LESS OS  LESS

Slide 24

Slide 24 text

バックエンドのコード フロントエンドのコード あとは、AWSがあれば アプリケーションが開発できる!

Slide 25

Slide 25 text

臆せず書いてみよう! まずは、 動くものを作ってみる フロントの全ては この一冊から

Slide 26

Slide 26 text

最初のアプリケーション開発

Slide 27

Slide 27 text

単独黒字!社内表彰!

Slide 28

Slide 28 text

FUKUOKA TOKYO 2019年後半 Serverless Operations さんと初めて出会ったの が福岡

Slide 29

Slide 29 text

04 内製化 〜単発編〜 SINGL E DEVELOP M ENT

Slide 30

Slide 30 text

そっからいろいろ開発しました 2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.09〜 2019.10 2019.12〜 2020.05 2020.06〜 2020.07 2020.08〜 2020.10 有料ライブ配信 Lift & Shift VODオフロード

Slide 31

Slide 31 text

そっからいろいろ開発しました 2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.09〜 2019.10 2019.12〜 2020.05 2020.06〜 2020.07 2020.08〜 2020.10 有料ライブ配信 Lift & Shift VODオフロード

Slide 32

Slide 32 text

ライブコマースシステム コロナで中止になった イベントの代替

Slide 33

Slide 33 text

ライブコマースシステム

Slide 34

Slide 34 text

ライブコマースシステムの課題 動画が途切れちゃうので リロードさせるのはNG 商品は予め用意するけど、 ほんとにそれを使うかはわからない 好きなタイミングで 商品を動画の下に出したい

Slide 35

Slide 35 text

GraphQL で Subscription!

Slide 36

Slide 36 text

AppSync AppSync Amplify Hosting {   timeSaleFlg: 0 } {   timeSaleFlg: 1 } shopify GraphQL GraphQLでの操作 非表示 表示

Slide 37

Slide 37 text

ライブコマースシステムの課題 好きなタイミングで 商品を動画の下に出したい 動画が途切れちゃうので リロードさせるのはNG 商品は予め用意するけど、 ほんとにそれを使うかはわからない Subscription で簡単に解決! AppSync amplify-cli で schema 定義して デプロイするだけ!

Slide 38

Slide 38 text

内製化 〜運用編〜 05 DEVOPS

Slide 39

Slide 39 text

数ヶ月ごとのリリースを重ねて 2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.09〜 2019.10 2019.12〜 2020.05 2020.06〜 2020.07 2020.08〜 2020.10 有料ライブ配信 Lift & Shift VODオフロード

Slide 40

Slide 40 text

既存の事業について考えてみた

Slide 41

Slide 41 text

データがバラバラ

Slide 42

Slide 42 text

オンラインのサービス 動画配信サービス EC それぞれ別のベンダーに運用ごと依頼 データはバラバラ 表示変えるのもCMS非対応部分は要改修

Slide 43

Slide 43 text

社内でプロジェクト始動 Project VIEWS-ON VIEWS-ON VIEWS-ON Video Event Web Shop ON-Air

Slide 44

Slide 44 text

社内でプロジェクト始動 動画 イベント ウェブ 買い物

Slide 45

Slide 45 text

社内でプロジェクト始動 決済 認証 認可 データ 分析 管理 画面

Slide 46

Slide 46 text

社内でプロジェクト始動 決済 認証 認可 データ 分析 管理 画面 動画 イベント ウェブ 買い物 共通基盤を作らないとこの先やっていけない

Slide 47

Slide 47 text

いままでの反省も踏まえて 2020.10〜 有料ライブ配信 ライブコマース ライブコマース イベント 2019.09〜 2019.10 2019.12〜 2020.05 2020.06〜 2020.07 2020.08〜 2020.10 有料ライブ配信 Lift & Shift VODオフロード 完全リニューアル 2021.04〜 2021.08.29 〜 2021.10〜 リニューアル ちょっとだけ サーバーレス化 2022.02.01 〜 2022.04.28 〜

Slide 48

Slide 48 text

ライブコマースシステム リベンジ 2021.08.29 〜

Slide 49

Slide 49 text

昨年の問題点 注文がスパイク マイナス在庫が 発生していた

Slide 50

Slide 50 text

昨年の問題点 回避したい RDSはイヤ! 絶対にムリ! 注文がスパイク マイナス在庫が 発生していた

Slide 51

Slide 51 text

Serverless Operationsさん に相談だ!

Slide 52

Slide 52 text

昨年の問題点 DynamoDB の 条件付き書き込み を教えてもらう

Slide 53

Slide 53 text

とっても黒字!

Slide 54

Slide 54 text

動画配信事業 EC事業 ベンダーとお別れ サーバレスとSaaSで 内製開発は出来る!

Slide 55

Slide 55 text

いい感じにまとまった S3 MediaConvert S3 DynamoDB DynamoDB DynamoDB AppSync Lambda API-GW Step Functions API-GW Amplify Amplify 担当者向け CMS 倉庫 システム BFF Frontend Backend OIDC OIDC OIDC

Slide 56

Slide 56 text

コストが半分以下 システムダウンなし(Design for Failure) アプリケーション側から逆算して最低限のものを作れる 事業上の試行錯誤がたくさん出来る 1. 2. 3. 4. よかった点 それなりのコードが書けるようになるまでは時間かかる AWSのアップデートを追いかけるのは大変 リファクタリングと一生付き合う覚悟 答え合わせする先が無いと不安で眠れない ここはAWSさんと、パートナーさんを頼るしかない 大変だった点 内製開発してみて

Slide 57

Slide 57 text

なにかご質問がありましたら! Thanks! 勉強会コミュニティで会いましょう!