$30 off During Our Annual Pro Sale. View Details »

サーバレスで繋がるHTBの内製化ストーリー

 サーバレスで繋がるHTBの内製化ストーリー

Kazuki Miura

June 13, 2023
Tweet

More Decks by Kazuki Miura

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 01 会社概要
    ABOUT US

    View Slide

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

    View Slide

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

    View Slide

  6. 02
    担当事業内容
    O
    UR BUSINE
    SS

    View Slide

  7. 動画配信事業 EC事業

    View Slide

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

    View Slide

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

    View Slide

  10. いろいろありました

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. やってみた気づき

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. いや、待てよ、、

    View Slide

  21. View Slide

  22. View Slide

  23. VPC LESS
    VPC LESS
    VPC LESS
    OS
     LESS
    OS
     LESS
    OS
     LESS

    View Slide

  24. バックエンドのコード


    フロントエンドのコード


    あとは、AWSがあれば
    アプリケーションが開発できる!

    View Slide

  25. 臆せず書いてみよう!
    まずは、
    動くものを作ってみる


    フロントの全ては
    この一冊から

    View Slide

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

    View Slide

  27. 単独黒字!社内表彰!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. ライブコマースシステム

    View Slide

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

    View Slide

  35. GraphQL で Subscription!

    View Slide

  36. AppSync AppSync
    Amplify
    Hosting
    {
      timeSaleFlg: 0
    }
    {
      timeSaleFlg: 1
    }
    shopify GraphQL
    GraphQLでの操作

    非表示 表示

    View Slide

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

    View Slide

  38. 内製化 〜運用編〜
    05
    DEVOPS

    View Slide

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

    View Slide

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

    View Slide

  41. データがバラバラ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. いままでの反省も踏まえて
    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 〜

    View Slide

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

    View Slide

  49. 昨年の問題点
    注文がスパイク


    マイナス在庫が
    発生していた

    View Slide

  50. 昨年の問題点
    回避したい


    RDSはイヤ!
    絶対にムリ!
    注文がスパイク


    マイナス在庫が
    発生していた

    View Slide

  51. Serverless Operationsさん
    に相談だ!

    View Slide

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

    View Slide

  53. とっても黒字!

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide