Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serverlessで構成するEvent Driven Data Platform

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Serverlessで構成するEvent Driven Data Platform

Avatar for Kazuki Maeda

Kazuki Maeda

December 23, 2020
Tweet

More Decks by Kazuki Maeda

Other Decks in Programming

Transcript

  1. 自己紹介 • 前田 和樹(  @kzk_maeda ) • SRE Manager at

    Progate • ギターやベースなど弾きます • 週末は2人の子どもに忙殺されてます
  2. 使用技術 • Frontend ◦ React / React Native • Server-Side

    ◦ Ruby on Rails / Node.js • Infrastructure ◦ AWS(ALB, EC2, Fargate, RDS, ElastiCache, Lambda, APIGW, KDF, etc...) ◦ Terraform / Serverless Framework ◦ Docker / Docker Swarm • Other ◦ Github / DockerHub / Circle CI / Slack / Asana / DocBase
  3. 対象とするデータ 更新頻度 分析活用 埋蔵金 • 活用用途を見出せてないデータ Master Data • Users

    • Lessons • Languages Transactional Data • UserCodes • LessonHistories • Logs
  4. Data Platform Architecture • RDS SnapshotのS3Export機能を活用 ◦ parquet形式のファイルをS3に定期Upload可能 ◦ RDSに対してread負荷がかからない

    • Data PipelineのレイヤはDatalake的な思想で構成 ◦ 収集→蓄積→変換→分析 ◦ 各レイヤをイベントドリブンで接続 • DataCatalogをセキュリティレベル別に分離 ◦ Sensitiveなデータとそうではないデータ ◦ 同一DataSourceからPipeline上で複数のCatalogを生成
  5. どうしたか • 後続のLambdaを同一Functionとし、SNSのMessageによって実行する処理 を分岐 ◦ snapshot created イベントに対しては snapshot export

    を実施 ◦ export task completed イベントに対しては後続の GlueJobをKick • 管理上関数を分けたかったが、全体をterraformで管理することとResource Groupを有効にすることで許容
  6. なにが起きたか • RDS Snapshot ExportタスクによってSnapshotがS3にExportされる際、 Export Task名のPrefix配下にSnapshotが配置される • 後続処理でExportされたSnapshotデータを特定する際に、Export Task名と

    して何が指定されたかを正確に把握する必要がある ◦ yyyy-mm-ddなどで値を決めると、リトライが発生した際のハンドリングが面倒
  7. 結論 • RDSのsnapshot export機能を使えば、Master DataをDatalakeに簡単に格 納することが可能 • だと思っていた時期がありました。 • イベントドリブンなパイプラインのモニタリングはX-Ray

    • だと思っていた時期がありました(要追加検証)。 • マネージドサービスを実要件での活用に落とし込んで行くには、結局はエンジ ニアリングが必要。 • AWS支援体制は積極的に活用していくのがいい