Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Elemental MediaPackageと格闘🤼

AWS Elemental MediaPackageと格闘🤼

社内のLT会でAWS Elemental MediaPackageについて発表しました

Avatar for Kurochan

Kurochan

July 15, 2025

More Decks by Kurochan

Other Decks in Technology

Transcript

  1. AbemaTV, Inc. All Rights Reserved 
 AbemaTV, Inc. All Rights

    Reserved 
 1 AWS Elemental MediaPackageとの格闘🤼 2025 July 15th 株式会社AbemaTV 黒崎 優太 @社内LT会
  2. AbemaTV, Inc. All Rights Reserved 
 黒崎 優太 株式会社AbemaTV サイバーエージェント

    2015年入社 2024年 AbemaTV出向 CM配信システムのバックエンドの開発等を担当 2 Profile
  3. AbemaTV, Inc. All Rights Reserved 
 InterBEE 2024の出展 4 異動まもない頃に実装担当することに、動画わからん🔥

    本番まであと1ヶ月くらい🔥🔥🔥 L字CM挿入システムのデモ 音と映像と通信のプロフェッショナルの展示会に ABEMA / WINTICKETが初出展。 ABEMA / WINTICKETブース
  4. AbemaTV, Inc. All Rights Reserved 
 MediaPackage v1編 9 MediaPackage

    v1のインジェスト方式 WebDAVでダイジェスト認証
  5. AbemaTV, Inc. All Rights Reserved 
 わけがわからないので WebDAVの仕様を知るべく RFC7616を読む… 12

    Digest認証に使う nonceは有効期限を定められそうなことが書いてある 🤔 nonceはサーバから送られてくる値で、今回の実装は nonceをキャッシュしていた ドキュメントには書いていないが 5分でnonceの有効期限が切れるっぽい …?
  6. AbemaTV, Inc. All Rights Reserved 
 MediaPackage v2編 15 ドキュメントで

    "HTTP PUT", "Basic PUT" という文字列しか見つけられず 少なくとも WebDAVではなさそう、認証なしということもないだろう … でもAWSコンソールにパスワードなどは見当たらない …
  7. AbemaTV, Inc. All Rights Reserved 
 あるとしたらアレしかない … 16 AWS

    Signature Version 4 (SigV4) AWSのサービスの APIへのリクエストに署名する方式 (改ざん防止 + 認可) aws-sdkを使っているとあまり意識することはないかも
  8. AbemaTV, Inc. All Rights Reserved 
 ちなみに 18 bodyが既知ではない場合 (ストリーミングなど

    )どうする? 🤔 動画やサイズの大きいファイルの取り扱いでありそう
  9. AbemaTV, Inc. All Rights Reserved 
 答え 19 bodyのかわりに "UNSIGNED-PAYLOAD"

    という文字列をハッシュ化する S3のドキュメントに書いてあるが、他のサービスでも対応していることがある
  10. AbemaTV, Inc. All Rights Reserved 
 感想 20 • 土地勘がない領域で自分の理解が間違ってるのか実装が間違ってるのか

    締切に追われながら切り分けるのはドキドキした • 今だったら AIに聞けばすぐ解決できそう
  11. AbemaTV, Inc. All Rights Reserved 
 資料 21 • MediaPackage

    の一般的なライブ処理の流れ ◦ https://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/what-is-flow-gen.html • Creating a channel in AWS Elemental MediaPackage ◦ https://docs.aws.amazon.com/mediapackage/latest/userguide/channels-create.html • Fields for the output destination – sending to MediaPackage ◦ https://docs.aws.amazon.com/medialive/latest/ug/hls-destinations-emp.html • Signature Calculations for the Authorization Header: Transferring Payload in a Single Chunk (AWS Signature Version 4) ◦ https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html