はじめに
こんにちは ! 株式会社スタートアップテクノロジー テックリード、 AWS Serverless HERO の松井です !
私は以前から AWS の各種マネージドサービスを自分のアプリケーションに組み込んで遊んできましたが、特にその中でも、特化した専門知識がなくても、基本的な開発スキルのみで簡単に自分のアプリケーションに動画配信や双方向の通信機能を追加できるメディア系のサービスにロマンを感じており、以前から Amazon Interactive Video Service (IVS) と AWS Amplify を使って自分だけのオリジナル配信サイトを作る ! や オリジナル配信サイトに視聴者数を取得して表示する機能をコマンド一発で構築する などの記事を公開させていただいたり、 JAWS-UG のオンラインイベント 、 JAWS DAYS 2021 re:Connect や JAWS PANKRATION 2021 Up till Down で配信システムの構築を担当したりしてきました。
そして今回は、 AWS Amplify や Amazon Chime SDK を使ったオリジナルのサーバーレスビデオミーティングアプリを構築したので、その概要や工夫したポイントなどについて解説します !
Chime SDK 単体での利用方法はすでに多くのドキュメントが公開されていますが (実際私も大変参考にさせていただきました)、一つのアプリケーションとしてエンドユーザーに提供することを想定すると、ユーザー登録・ログイン機能やユーザーに紐づくミーティング ID の保存や権限管理なども考える必要が出てくるかと思います。今回はそれらも含めたソースコードもご紹介しますので、参考にしていただいて実際にご自身でも構築していただけるかと思います !
ご注意
本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。
実際に今回ご紹介する内容と同等の仕組みを構築してインターネット上に公開する場合、 電気通信事業法 に基づく届出が必要になる可能性がございますので、ご自身の責任において適切にご判断いただき、運用してください。
今回ご紹介する内容を実践していただき、簡易的に動作確認していただく場合、数十円〜数百円程度の AWS 利用料金が発生します。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
1. 利用するサービスの概要
2. 全体構成
今回ご紹介するアプリケーションの全体の構成です。 AWS の各種サービスをビルディングブロックとして組み合わせ、一つのアプリケーションとして機能させていますが、基本的には Amplify と Serverless Framework を使って、アプリケーションのソースコードだけでなく、構成自体もコードベースで管理しています。
3. 各コンポーネントの解説
全体構成のうち、一つ一つの箇所について解説していきます。
4. まとめ
今回は主に Chime SDK と Amplify のご紹介でしたが、
Chime SDK を使えば比較的簡単に独自のアプリケーションにビデオミーティング機能が追加できる。
Amplify を使えば、今回の様に他の AWS サービスと統合して、実際に動くアプリケーションとして、容易に機能の検証ができる。
ということがお分かりいただけたかと思います !
サンプルコードですが、途中でもリンクを記載しましたが、改めて下記の通りご案内します。
また、今回の内容をお試し頂くには、基本的な Web 開発と Amplify に関する理解が必要になるかと思います。Amplify について詳しく知りたい、そもそもどんなものか分からないという方は、 こちら などを参考に別のサンプルなども動かしてみて理解を深めていただけると良いかと思います。
今回の内容を参考に、ぜひご自身でもお試しいただけると幸いです !
Happy Coding !
筆者プロフィール
松井 英俊 (まつい ひでとし)
株式会社スタートアップテクノロジー テックリード
JAWS-UG 浜松支部 運営メンバー
JAWS DAYS 2021 re:Connect、JAWS PANKRATION 2021 -Up till Down- では実行委員を務め、配信サイトを構築した。
2021 年 6 月、 AWS Serverless HERO に選ばれる。

Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages