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

スタートアップにおけるデータ基盤のパッチワークフローの変遷

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

 スタートアップにおけるデータ基盤のパッチワークフローの変遷

AWS startup 202106

Avatar for KAKEHASHI

KAKEHASHI PRO

June 11, 2021
Tweet

More Decks by KAKEHASHI

Other Decks in Technology

Transcript

  1. 自己紹介
 福田 貴之
 株式会社カケハシ データ基盤 ProductOwner 兼 エンジニア
 経歴
 •

    某Y!2007年新卒でモバイル向けサービス開発運用 
 • ソーシャルゲーム会社でログ基盤を約6年くらいみてた 
 • あとはベンチャーをいくつか...(HR Saasとか) 
 • 2020年より現職
 好きなAWSサービス: ECSFargate
 

  2. 何故ワークフローエンジンを使うか • cron(CloudWatchEventsなど)では駄目なのか?
 ◦ 依存関係のない単発のJOBがある程度ならこちらの方が楽 
 • バッチを運用してると困ってくること
 ◦ ジョブごとの依存関係をコードで管理したい....

    
 ◦ retry処理や成否通知処理をそれぞれのJobに実装したくない... 
 ◦ どこまで終わっているのか状態管理をしてほしい... 
 ◦ どの部分にどれくらい時間がかかっているのか観測したい... 
 ◦ 失敗時にそこから再集計しやすいようにしたい... 
 • 最初からワークフローを導入するのはオーバースペックな場合も

  3. バッチワークフロー比較 OSSはいくつかあるけれど、、マネージドでやりたい
 • (OSS)Airflow
 ◦ Airbnb社
 • (OSS)Digdag
 ◦ TreasureData社


    • (OSS)Argo Workflow 
 ◦ k8sネイティブ
 • (OSS)Luigi
 ◦ Spotify社OSS
 • AWS StepFunctions
 • AWS Glue Workflow
 • Amazon Managed Workflows for Apache Airflow

  4. AWSマネージドワークフロー所感
 • Glue Workflow
 ◦ Glue Job/Glue Crawlerだけのワークフローなら作るのは一番ラク 
 ◦

    S3をGlueJobでETL処理してAthenaで見るみたいな用途だとマッチするのでは 
 ◦ コンソールのジョブの一覧性がちょっと... 
 • StepFunctions
 ◦ GlueWorkflowよりは多少めんどくさいが自由度もある 
 ◦ 豊富なAWSサービスとの連携 
 ◦ 思想としてコードを書かずにワークフローが作れる 
 • MWAA(Airflow)
 ◦ Airflowをマネージドで運用してくれる 
 ◦ ワークフローがコードで管理できる(=かなり書く必要があるが...) 
 ◦ 拡張性もある(boto3でコードを書けになりがちだが...) 
 ◦ UIがわかりやすく再集計などがやりやすい 

  5. MWAA(Airflow)実際に運用するにあたって辛いかもな点
 • わりと(かなり)コード書く必要があるかも
 ◦ 再利用は可能だし通知やretry処理を作り込む必要がないとはいえ... 
 ◦ 一部はOperatorsなど用意されているものもあるが(ECSなど) 
 ▪

    https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/operators/index. html
 ◦ GlueJobをワークフロー(DAG)から呼ぶときなどboto3で実装必要 
 
 
 
 ◦ AssumeRoleが1時間で切れるのでそのあたりの実装も必要 
 • [MWAA] plugin化したファイルの反映にAirflowの再起動が必要(30分くらいかか る...)
 def exec_gluejob(**kwargs): client = boto3.client("glue") res = client.start_job_run( JobName=job_name, Arguments=job_args, )
  6. カケハシは絶賛採用実施中です!! カジュアル面談からでも!! • サーバサイドエンジニア • フロントエンドエンジニア • SRE • データエンジニア

    • プロダクトマネジャー • 開発ディレクター(スクラムマ スター) https://herp.careers/v1/kakehashi