
動画をまとめておいておきたいんだけど、
機能が豊富なYoutubeやVimeo…ではなんとなく自分のイメージに合わない…
AWSを使って自分で構築できないかな。S3のホスティング機能で作れないかしら。
でも、AWSでシステムを構築するには
EC2を使う方法しか思いつかないし、
静的なサイトしか作れないのかも…というお悩みがありませんか?
私はありました!
EC2を使わないことで、サーバーの管理は必要なくなるし、
AWSのサービスを使ったサーバーレスの恩恵だけを受けることができます。
EC2を使わないで、AWSのサービスだけでWebシステムを構築したい!という強い願い!
そこで今回は、EC2をぜーったいに使わないで、動画配信サイトを作るには、
どのサービスを使って、どのように構成したらいいのかを、
実践してみました。
目次
サービスの構成図
サービスの構成図は、以下になります!

利用するサービス
・S3
ホスティングもできるストレージサービス。
・API Gateway
Lambdaと併用して、API通信を実施できるサービス。
・Lambda
単一の関数を実行できるサービス。
・MediaConvert
MP4などの動画を分割して配信に最適化できるサービス。
・CloudFront
静的および動的なウェブコンテンツの配信速度を高速化させることができるサービス。
手順
以下は、API出力の手順と動画変換の手順です!
API出力の手順
⒈ S3に、ホスト用バケットと、動画用バケットを準備する。
⒉ lambdaで、S3の動画用バケットの、一覧と、最新動画を取得、出力する関数を作成。
⒊ APIGatewayでメソッドを作成。2のlambdaと接続する。
⒋ S3のホスト用バケット内のJavaScriptから、3のAPIを呼び出し。情報を取得する。
⒌ S3のホスト用バケット内のhtmlに、4で取得した情報を出力。
動画変換の手順
⒈ S3動画用バケットに、input output用のフォルダを準備。
⒉ S3動画用バケットのinputに動画がアップされたイベントで、Lambdaを作動,MediaConvertを使って動画ファイルを変換。
⒊ 2の変換作業が完了したファイル群は、S3動画用バケットに保存される。
⒋ 保存されたファイル群は、APIによって、リスト取得、最新取得が行われ、S3のホストの情報は、常に最新の状態が表示される。
その他
・CloudFrontを利用して、S3のホスト用バケットのURLを綺麗に。
・ドメインがAPIとS3で違う場合、APIGatewayのCORSの設定で、CrossOriginを管理。
まとめ
これで、EC2を使わずに、可変表示可能なサイトが作成されました。
静的なサイトしかS3ではできないと思っていたので、EC2に頼っていましたが、
なるほど、API Gatewayを使えば、公開可能なサイトは、サーバーレスで作成が可能ですね。
今回、LambdaとAPIGatewayの設定には、
「AWS SAM CLI」を利用させていただきました。
SAM = Serverless Application Model
なるほど…サーバーレスアプリケーションで、いろいろ作るために、
AWSは元から準備をしてくれているのですね。
EC2を使わないと無理だーの思考から、脱出できてよかったです。
AWSでサーバーレスを実現したいご相談も、お待ちしております。