見出し画像

『ウォーターフォールを追いかけて』のシステム構成について

今回、円盤に乗る派が行うWeb公演『ウォーターフォールを追いかけて』の録音用ページの開発に関わらせていただきました。

メインの担当分はサーバーサイドでしたが、なんだかんだいろいろと作業はしました…。

今回のWeb公演は、本当は通常の公演で行われる予定だった『ウォーターフォールを追いかけて』の戯曲をランダムに表示し、観客の方がそれを録音するという方式で行われています。録音したデータは後日編集されて公開される予定です(ここまで含めて公演)。ぜひ、アクセスして録音していただけると嬉しいです。

システムを作るにあたって

ただ、自分が担当する部分は観客の方の音声を集めるのが目的で、公演が終わったら使わなくなるサイトのため、
・今後も運用することを前提にしないでよい
・そこまで費用をかけたくない
ということが前提条件としてありました。
費用云々についてはこちらの問題でもありますがお金がかからないに越したことはないです。こうした条件からシステム構成を考えていきました。結論としてはAWSを使ったサーバーレスな構成でいくことにしました。

まず費用面ですが、今回は期間が短いためAWSの無料期間のメリットを享受できます。開発するにあたって利用サービスが多くなったとしても、コストメリットが大きいためこれに乗っかる形で考えました。
また、運用がないためWordpressなどのCMSなどを入れたり、サーバー込みのフレームワークを使うよりも必要な部分だけ実装して他はAWSの機能に頼るほうが実装のコストも掛からず済みます。

実際の構成図は下記の通りです。

ウォーターフォールシステム構成

ページはS3のStatic Web HostingをCloudFrontで表示する形にしています。ただ、ページ内で戯曲を取得しランダムに表示する必要があるため、それはLambdaとAPI Gatewayを利用してDynamoDBから取得しています。観客の方が録音したデータも戯曲データ同様にLambdaを呼びだし、別のS3のバケットに吐き出す形になっています。
DBも費用を基準に選択しています。個人的にはRDBのほうが手慣れていて開発自体は楽なのですが、いかんせんお金がかかるので無料枠の多いDynamoDBを選択しています。
(初期データの入れ方等で結構苦戦したので、それだったら金払ったほうがコスト的には安かったんじゃ…と思うこともないですが…。)

費用について

最終的な費用は請求見てみないとわからない部分がありますが、DNSサーバーとして使っているRoute53以外は無料枠の範囲内で済んでいます。ちなみに開発中の8月請求分はこんな感じでした。安い…。素晴らしい…。

スクリーンショット 2020-09-04 18.12.09

ということで、なにかWeb上でやってみたい場合などは気軽にお声かけいただけると嬉しいです。

また、普段開発しているPASSKETもよろしくお願いします(宣伝)


この記事が気に入ったらサポートをしてみませんか?