#JAWSDAYS2021 クラウド大運動会、改めピタゴラスイッチ選手権 (JAWS DAYS 2021枠内)に参加してきた

2021年3月21日開催されたJAWS DAYS 2021で発表したピタゴラ装置なAWS構成について紹介します。
2021.03.20

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

AWSチームの鈴木(亮)です。

JAWS DAYS 2021枠内で開催されたクラウド大運動会、改めピタゴラスイッチ選手権に参加する機会がありましたので、レポートさせていただきます。

お題

以下のテーマを実現するAWS構成について、発表させていただきました。

    1. DynamoDBにデータを書き込むHTTPエンドポイント
    1. なんでもいいので、S3にデータを書き込む

  • 詳細資料

テンプレ構成例

DynamoDB

S3

発表内容

DynamoDB

GETリクエストをCloudFrontで受け付け。 リアルタイムログ解析の仕組みでDynamoDBに登録する仕組みを考えました。

構成図

フロー

  • 端末は、DynamoDBに登録するデータをGET引数でCloudFrontに投入
  • CloudFrontのリアルタイムログをKinesis DataStreamsに転送、Firehose経由でElastiSearchに格納
  • Firehoseのレコード登録をCloudWatchアラームで検出、RDS(Aurora)のSQLを発行するLambdaを メッセージ、キューサービスを利用して起動。
  • Aurora は、自身でLambdaを起動、ElastiSearch に登録されたログを回収し、自身のテーブルに追記
  • Auroraのテーブル更新内容、データベースアクティビティストリームを利用して、Kinesisファミリーに連携
  • Firehose の HTTPエンドポイント出力を利用して、APIGateway 経由で DynamoDBにレコードを登録

S3

AWS Elemental MediaLive の RTMP output機能を利用して、Elemental Media系のサービスとIVSを連携。

IVSの 出力データを Kinesis Video Stream 経由で S3に保存。

最終加工を MediaConvert、Elastic Transcoderで実施する構成を考えました。

構成図

参考リンク

感想

CloudFrontのアクセスログ、ニアリアルタイムで処理するアーキテクチャ、

− CloudFront のリアルタイムログ出力先となる Kinesis DataStreamのシャードを確保する。 − リアルタイム処理系でエラー(取りこぼし)が発生した場合、10分程度の遅延でS3に出力される通常アクセスログ集計でリカバリーする。

とする利用の実現で、スパイクアクセスなどで APIGateway、Lambdaなどのスロットルが課題となる場合に有効かと思われます。

今回の構成図には取り込みませんでしたが、以下のような TimeStream を利用した構成の実用性などについて、もう少し踏み込んで検証を試みてみたいと思います。

S3の課題で利用したMedia系のサービス、普段の業務でも触れる機会の少ないサービスの役割などについて確認できるいい機会となりました。

最後になりましたが、昨年夏のクラウド運動会に引き続き興味深いイベントの企画、参加する機会を頂きありがとうございました。