AWS LambdaとAWS AI Servicesを組み合わせてサーバレスの世界を体験してみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは 後藤です。

現在開催しているAWS INNOVATEでハンズオン形式のセッション「サーバーレス入門ハンズオン - AWS Lambda と AWS AI Services を組み合わせてサーバーレスの世界を体験しよう!」が気になったので実際に手を動かしながら視聴してみました。

ちなみに後藤は少しだけLambdaを動かせるけど、今回ハンズオンで使用するComprehendやTranscribeは初めて使います。楽しみです。

本セッションの概要

「“サーバーレス” ってたまに聞くけど実はなんだかよくわかってない..」 「どんなときに有用なの?メリットは何?」 そんな方向けのセッションです。 AWS におけるサーバーレスアーキテクチャの中核を担う AWS Lambda の活用方法を、実際に手を動かしていただくことで、ご理解いただきます。

ハンズオンでは、AWS Lambda を単体で使うだけでなく、他の AWS サービスと組み合わせることで、 ・アンケート結果をもとに、感情のポジネガ情報を取得する ・録音したインタビュー音声を文字起こしする といった機能を実装していただきます。

スピーカー

アマゾンウェブサービスジャパン 技術統括本部 レディネス&テックソリューション本部 ソリューションアーキテクト 金澤 圭さん

本セッションについて

  • 対象者
    • "サーバレス"ってたまに聞くけど、実はよく知らない..
    • "サーバレス"ってどんなときに有用なの?メリットは何?と思われているエンジニア / アーキテクトの方
  • ゴール
    • 実際に手を動かし、具体的なソリューションの一部を作っていただきながら、45分間でサーバレスアーキテクチャの基本を抑えていただきます。
    • 他のハンズオンにチャレンジしたい!実際のプロダクト開発で試してみたい!といったNext Action に繋げていただく

ハンズオン#1の背景

商品開発現場でのポジネガ分析を行う立場。以下のことを考えて実現する。

  • 約2000人からのフィードバック
  • ネガティブなものを自動判別する仕組みを作りたい
  • まずはMVPをなるはやで使えるようにしたい
  • できれば将来的に様々な現場に横展開したいが、どのくらい利用されるかは分からない。

ハンズオン#1の内容

ハンズオン#1の背景を実現するため、以下のような構成を作成していきます。

こちらの構成は、以下の手順で構築していきました。
※ハンズオンのため、詳細な手順は省略致します。気になる方は是非ハンズオンを受けてみてください!

  1. Lambdaの作成(今回のハンズオンではPython3.8を使用していました
  2. (1)で作成したLambdaとComprehendを連携させるため、IAMロールの権限変更と、Comprehendを呼び出すための処理を追加
  3. API Gatewayから(1)のLambdaでデータを受け取るための処理を追加
  4. API GatewayでREST APIを作成
  5. 実際に文言を与えて、ポジネガ分析をしてみる

今回は試しに「サーバレス最高!!」と文言を与えてみたところ…

ポジティブの値が0.9991と判定されました。ポジティブですね!

逆に、「サーバレス最低!!」と文言を与えてみると…

ポジティブの値が0.101、ネガティブの値が0.787と判定されました。

ハンズオン#2の背景

インタビュー音源の文字起こしを行いたいが、以下のことを考えながら実現する。

  • 100人分の音源データ(.mp3)
  • 自身で文字起こしするのは辛いので仕組み化したい。
  • 音源はバラバラに届くが、届いた順になるはやで文字起こししていきたい。そのため、仕組みは常に稼働している状態にしたい
  • ただし、コストは少しでも抑えたい

ハンズオン#2の内容

ハンズオン#2では、以下の構成を作成していきます。

こちらの構成は、以下の手順で構築していきました。

  1. 音声ファイルをアップロードするためのS3バケットの作成
  2. 設計図 s3-get-object-python を元にLambdaを作成。
  3. ハンズオンで配布されている音声ファイルをS3にアップロード
  4. Transcribeで文字起こしされたファイルをアップロードするS3バケットを作成
  5. Transcribeの作成
  6. (2)で作成したLambdaとTranscribeを連携させるため、IAMロールの権限変更と、Transcribeを呼び出すの処理を追加
  7. (4)で作成したS3バケットに音声ファイルをアップロードして、文字起こし出来ているか確認する

結果、自動的に音声ファイルの内容が文字起こしされたファイルがS3に出力されていました。

実際にやってみた感想

普段あまり使用する機会が無く、今まで触ったことが無かったComprehendやTranscribeをサーバレスの構成として体験することが出来る非常に面白いハンズオンでした!

ハンズオンでは既に完成されたプログラムが配布されておりますが、ハンズオンで なぜこの処理が必要なのか を段階を踏んで説明されているため、処理の内容を理解しながらプログラムを書いていくことが出来るので、プログラムが苦手な方や、Lambdaを使用したことがない人にもオススメです!

また、動画の最後にはNextAction案が提示されており、次の学びへ導いてくれるのも嬉しいですね。

最後に

私はサーバーレスの勉強をしていると、実際に何を作っていいのか分からなく、勉強がストップしてしまうときが多々あります。そういう時にこういったハンズオンがあると嬉しいですよね。

気になった方は是非ハンズオンは受けてみては如何でしょうか。 AWS INNOVATE