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

AWSでメディアファイル処理ワークロードを簡単に構築!「AWS Media Insights ...

AWSでメディアファイル処理ワークロードを簡単に構築!「AWS Media Insights Engine」入門

AWSには様々なサービスが提供されており、それらを組み合わせることでメディアファイルを処理するワークロードを構築することが可能です。 一方で、上記の様なワークロードには様々な要素が必要になります。 この課題を解決する公式ソリューションである、「AWS Media Insights Engine」について、概要からデプロイ方法、実際の使い方までご紹介します。

この資料は https://classmethod.jp/m/developers-io/ にて利用したものになります。動画は以下で視聴可能です。

https://www.youtube.com/watch?v=fbgExtB_sR8&t=3s

RyousukeOomae

August 04, 2022
Tweet

More Decks by RyousukeOomae

Other Decks in Technology

Transcript

  1. 2 自己紹介 ⼤前 諒祐(oomae ryousuke) • AWS事業本部 コンサルティング部 • ⼊社

    2019年 5⽉ • 2020/2021/2022 APN AWS Top Engineers • 経歴 • SIer → クラスメソッド • 好きなサービス • AWS MediaServices
  2. 5 1. AWS Media Insights Engine(MIE)とは AWS はメディアファイルの処理に活用できる様々なサービスを提供 (以下は一例) Amazon

    Comprehend (自然言語処理) Amazon Transcribe (音声認識) Amazon Translate (翻訳) Amazon Textract (テキスト抽出) Amazon Polly (文章の読み上げ) AWS Elemental MediaConvert (メディアファイルの変換)
  3. 6 1. AWS Media Insights Engine(MIE)とは 複数の AWS サービスを組み合わせる事で メディアファイルを処理するワークロードを実現することが可能

    • 例 1 : 動画からテキストを抽出して翻訳する • 例 2 : 文書からテキストを抽出して読み上げる • 例 3 : テキストからキャプションを作成し動画に埋め込む
  4. 7 1. AWS Media Insights Engine(MIE)とは 一方で、メディアファイルを処理するワークロードを構成する場合は 様々なコンポーネントが必要になる • 処理状態を保持する

    DB • メディアファイルを処理するフローの状態管理 • ワークロードへのファイル入出力インターフェース • エラーハンドリング • etc.
  5. 8 1. AWS Media Insights Engine(MIE)とは AWS Media Insights Engine

    メディアファイルを処理するワークロードを AWS で構成する場合に 必要な要素をフレームワークとして提供するソリューション • 処理状態を保持する DB • メディアファイルを処理するフローの管理・変更 • ワークロードへのファイル入出力インターフェース • エラー処理 • etc. AWS Media Insights Engine が提供
  6. 11 2. MIE を構成するリソース (AWS Media Insights Engine | 実装

    | AWS ソリューション より引用) コントロールプレーン データプレーン
  7. 12 2. MIE を構成するリソース (Media Insights on AWS - Solution

    components より引用) コントロールプレーン メディアファイルを処理するためのワークフローの管理・実行 等を担う基盤 API を実行することで Step Functions のステートマシンが作成される
  8. 13 2. MIE を構成するリソース (Media Insights on AWS - Solution

    components より引用) データプレーン 処理対象となるメディアファイルの実体やメタデータを保存する基盤 Kinesis Data Streams を介して外部アプリケーションとの連携が可能
  9. 14 2. MIE を構成するリソース (aws-solutions/aws-media-insights-engine - Cost より引用) 料金 月

    20 ドルほど(前提条件は引用元リンクを参照) 不要であれば、Kinesis の作成をスキップすることでコストを半減可能 AWS Service Quantity Cost Amazon API Gateway 1 million workflows $3.50 / mo Amazon Dynamo DB 1 million workflows $0.025 / mo AWS Lambda 100 workflows $4.75 / mo Amazon Kinesis 100 workflows $12.56 / mo Amazon SQS 1 million workflows $0.40 / mo Amazon SNS n/a No charge Amazon S3 100 workflows $2.3 / mo AWS X-Ray 100 workflows $0.0005 / mo
  10. 16 3. MIE のデプロイ方法 公式ソリューションページ(※1)もしくは GitHub リポジトリ(※2)の CloudFormation スタック展開リンクからデプロイ可能 2022/6

    時点では バージニア北部/オレゴン/アイルランド のみ対応 ※1 : https://aws.amazon.com/solutions/implementations/aws-media-insights-engine ※2 : https://github.com/aws-solutions/media-insights-on-aws
  11. 18 4. MIE の使い方 MIE の主な 3つの要素 • オペレーター •

    ステージ • ワークフロー 各要素に対する操作が コントロールプレーン API として提供される為、 それぞれの概念を理解すれば MIE の使い方がイメージできる
  12. 19 4. MIE の使い方 オペレーター Lambda 関数を利用してメディアファイルの処理を行う最小の単位 独自オペレーター作成も可能だがビルトインのオペレーターが利用可能 提供されているオペレータの一部 オペレーター名

    処理概要 Text Detection Amazon Rekognition を利用してビデオ内のテキストを抽出する Polly Amazon Polly を利用して入力テキストを音声に変換する Transcribe Amazon Transcribe を利用して入力オーディオをテキストに変換する Translate Amazon Translate を利用して入力テキストを翻訳する Thumbnail AWS Elemental MediaConvert を利用して入力ビデオのサムネイル画像を生成する 参考 : https://github.com/aws-solutions/media-insights-on-aws - architecture-components
  13. 22 4. MIE の使い方 MIE デプロイ後の使い方 例 1. `GET /workflow/operation`

    で利用可能なオペレーター一覧を取得 2. `POST /workflow/stage` でステージを作成 3. `POST /workflow` でワークフローを作成 4. `POST /workflow/execution` で作成したワークフローを実行
  14. 23 4. MIE の使い方 (参考)API の実行方法 MIE が提供する API を利用する場合、SigV4

    による署名が必要 コマンドで実行する場合は awscurl が便利 参考 : https://dev.classmethod.jp/articles/introduce-awscurl/
  15. 25 4. MIE の使い方 1. 利用可能なオペレーター一覧を取得 ターミナルから `GET /workflow/operation` を実行

    $ WORKFLOW_API_ENDPOINT=<メモしたエンドポイント> $ awscurl -X GET --region us-east-1 ¥ $WORKFLOW_API_ENDPOINT/workflow/operation ¥ | jq -c '.[].Name' | sort
  16. 26 4. MIE の使い方 2. ステージを作成 ターミナルから ` POST /workflow/stage`

    を実行 今回は “Mediaconvert” オペレーターを指定 $ WORKFLOW_API_ENDPOINT=<メモしたエンドポイント> $ STAGE_NAME="my-stage-01” $ awscurl -X POST --region us-east-1 ¥ -H "Content-Type: application/json” ¥ --data '{"Name":"'$STAGE_NAME'", "Operations": ["Mediaconvert"]}’ ¥ $WORKFLOW_API_ENDPOINT/workflow/stage
  17. 27 4. MIE の使い方 3. ワークフローを作成 ターミナルから `POST /workflow` を実行

    $ WORKFLOW_API_ENDPOINT=<メモしたエンドポイント> $ WORKFLOW_NAME="my-workflow-01” $ STAGE_1_NAME="my-stage-01” $ awscurl -X POST --region us-east-1 -H "Content-Type: application/json" ¥ --data '{"Name":"'$WORKFLOW_NAME'", "StartAt": "'$STAGE_NAME'", "Stages": {"'$STAGE_NAME'":{"End":true}}}’ ¥ $WORKFLOW_API_ENDPOINT/workflow
  18. 29 4. MIE の使い方 4. 作成したワークフローを実行 ターミナルから ` POST /workflow/execution`

    を実行 $ (変数セットは省略) $ DATAPLANE_BUCKET=mie-devio2022-dataplane-xxxxxxxx $ awscurl -X POST --region us-east-1 -H "Content-Type: application/json" ¥ --data '{"Name": "'$WORKFLOW_NAME'", "Input": {"Media": {"Video": {"S3Bucket": "'$DATAPLANE_BUCKET'", "S3Key": ”sample.mp4"}}}}’ ¥ $WORKFLOW_API_ENDPOINT/workflow/execution | jq
  19. 31 5. まとめ AWS Media Insights Engine を利用する事で … 👉

    メディアファイルの処理ワークロードを簡単に作成可能 👉 API が提供されるため既存アプリケーションと統合可能 👉 CloudFormation で展開されるため試しやすい