Slide 1

Slide 1 text

AWS でメディアファイル処理ワークロードを簡単に構築︕ 「AWS Media Insights Engine」⼊⾨ AWS 事業本部 コンサルティング部 ⼤前 諒祐

Slide 2

Slide 2 text

2 自己紹介 ⼤前 諒祐(oomae ryousuke) • AWS事業本部 コンサルティング部 • ⼊社 2019年 5⽉ • 2020/2021/2022 APN AWS Top Engineers • 経歴 • SIer → クラスメソッド • 好きなサービス • AWS MediaServices

Slide 3

Slide 3 text

3 お話しすること 1. AWS Media Insights Engine(MIE)とは 2. MIE を構成するリソース 3. MIE のデプロイ方法 4. MIE の使い方 5. まとめ

Slide 4

Slide 4 text

4 1. AWS Media Insights Engine(MIE)とは

Slide 5

Slide 5 text

5 1. AWS Media Insights Engine(MIE)とは AWS はメディアファイルの処理に活用できる様々なサービスを提供 (以下は一例) Amazon Comprehend (自然言語処理) Amazon Transcribe (音声認識) Amazon Translate (翻訳) Amazon Textract (テキスト抽出) Amazon Polly (文章の読み上げ) AWS Elemental MediaConvert (メディアファイルの変換)

Slide 6

Slide 6 text

6 1. AWS Media Insights Engine(MIE)とは 複数の AWS サービスを組み合わせる事で メディアファイルを処理するワークロードを実現することが可能 • 例 1 : 動画からテキストを抽出して翻訳する • 例 2 : 文書からテキストを抽出して読み上げる • 例 3 : テキストからキャプションを作成し動画に埋め込む

Slide 7

Slide 7 text

7 1. AWS Media Insights Engine(MIE)とは 一方で、メディアファイルを処理するワークロードを構成する場合は 様々なコンポーネントが必要になる • 処理状態を保持する DB • メディアファイルを処理するフローの状態管理 • ワークロードへのファイル入出力インターフェース • エラーハンドリング • etc.

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

9 2. MIE を構成するリソース

Slide 10

Slide 10 text

10 2. MIE を構成するリソース (AWS Media Insights Engine | 実装 | AWS ソリューション より引用)

Slide 11

Slide 11 text

11 2. MIE を構成するリソース (AWS Media Insights Engine | 実装 | AWS ソリューション より引用) コントロールプレーン データプレーン

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

13 2. MIE を構成するリソース (Media Insights on AWS - Solution components より引用) データプレーン 処理対象となるメディアファイルの実体やメタデータを保存する基盤 Kinesis Data Streams を介して外部アプリケーションとの連携が可能

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 3. MIE のデプロイ方法

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

17 4. MIE の使い方

Slide 18

Slide 18 text

18 4. MIE の使い方 MIE の主な 3つの要素 • オペレーター • ステージ • ワークフロー 各要素に対する操作が コントロールプレーン API として提供される為、 それぞれの概念を理解すれば MIE の使い方がイメージできる

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

20 4. MIE の使い方 ステージ 複数のオペレーターを含むグループを示す単位 ステージに含まれるオペレーターは非同期に実行される

Slide 21

Slide 21 text

21 4. MIE の使い方 ワークフロー 最終的な処理フローを定義する単位 各ステージの処理順序を定義する ワークフローの定義に従って Step Functions ステートマシンが生成される

Slide 22

Slide 22 text

22 4. MIE の使い方 MIE デプロイ後の使い方 例 1. `GET /workflow/operation` で利用可能なオペレーター一覧を取得 2. `POST /workflow/stage` でステージを作成 3. `POST /workflow` でワークフローを作成 4. `POST /workflow/execution` で作成したワークフローを実行

Slide 23

Slide 23 text

23 4. MIE の使い方 (参考)API の実行方法 MIE が提供する API を利用する場合、SigV4 による署名が必要 コマンドで実行する場合は awscurl が便利 参考 : https://dev.classmethod.jp/articles/introduce-awscurl/

Slide 24

Slide 24 text

24 4. MIE の使い方 0. API のエンドポイントを確認 MIE を展開したスタックから「出力」>「WorkflowApiEndpoint」を確認

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

28 4. MIE の使い方 4. 作成したワークフローを実行 データプレーン用 S3 バケット(<スタック名>-dataplane-<ランダム文字>) に動画ファイルをアップロードしておく

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

30 5. まとめ

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

No content