TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットに本にも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや本
処理が複雑でジョブの依存関係を定義したい場合は、AWS Batch 単体で制御するか、より複雑な場合は Step Functions を用いて Lambda、ECS(Fargate)、AWS Batch(Fargate) を組み合わせる。 AWSにおけるバッチ処理の選択肢 ざっくりとした選択肢は下記。 Lambda ECS(Fargate) AWS Batch(Fargate) これらのサービスに実際は SQS や Step Functions を組み合わせることもあるので選択肢はさらに広がる。 ちなみに、SQS + Fargate(常時起動でポーリング) という構成や、SQS + Lambda + Fargate(都度実行) という構成は、AWS Batch が Fargate に対応した現在は特にメリットがないので取り扱わない。 2021/5/2 追記 「常時リクエストがくるユースケー
4つのバッチ処理・定期実行方式の詳細情報それぞれのバッチ処理・定期実行方式について詳細を見ていきます。 EC2について使用するAWSサービスEC2 処理概要Linux系OSで用いられる定時実行機能であるcronのコマンドを使用する メリット昔からよく使われているcronの知識が使える デメリットEC2インスタンスを起動しておく必要があり、使っていない時間もコストがかかる 障害に弱い。EC2サーバに障害があると終わる サーバが複数になると管理が大変 SQS×ECS使用するAWSサービスEventBridge SQS ECS 処理概要EventBridgeでキューを生成。ECSコンテナでキューを取得して実行する メリットECSを起動しておくため、コンテナの起動時間を要さない。 デメリットEventBridgeでキューを生成するが、EventBridgeはまれに1 つのイベントに対して複数回トリ
Amazon Web Services ブログ AWSサーバーレスバッチ処理アーキテクチャの構築 この投稿は、AWSソリューションアーキテクトであるReagan RosarioとWWPSソリューションアーキテクトであるMark Curtisによって書かれました。バッチ処理は多くの組織にとって基礎となるもので、大量の情報を効率的に自動化した形で処理することができます。ユースケースとしては、ファイル取り込み処理、キューベースの処理、トランザクションジョブ、さらに重いデータ処理のジョブなど、多岐にわたります。 この記事では、ファイル取り込み処理を実装するためのバッチ処理を、サーバーレスに実現するための方法を説明していきます。今回の例では、オーケストレーションにAWS Step Functions、オンデマンドのコンピューティングにAWS Lambda、データストアにAmazon S3、メールの送
アプリケーションエンジニアのid:tkzwtksです。今回はバッチ処理の冪等性(べきとうせい、idempotence)について、どう考えるか/考えてきたかをご紹介します。 このエントリを書くきっかけとなったのは、はてなエンジニア有志で定期的に開催しているCloudNative推進会です。ここでは、社内のシステムをクラウドネイティブにしていくため「クラウドネイティブなシステムとはどういうものか?」を考えており、この会での「クラウドネイティブなバッチ処理」の議論も踏まえつつ説明していきます。 バッチ処理における冪等性とは メッセージ送信の信頼性を考慮する クラウドネイティブで可用性を高めるために どのような場合に冪等性を考慮すべきか 冪等な実装における3つのケーススタディ ケース1: n分前までに更新されたレコードを集計する ケース2: DB上の対象レコードを更新する ケース3: 対象ユーザー
画像圧縮ツール「Optimage for Mac」がv3.0へメジャーアップデートしています。詳細は以下から。 ロシアのVlad Danilovさんは現地時間2019年06月26日、2016年から開発を続けている画像圧縮ツール「Optimage for Mac」をv3.0.0へメジャーアップデートし、JPEGやPNG, GIF, WebPの圧縮率を向上させたほか、新たにAPNGやHEVC, MP4, WebMの圧縮に対応したと発表しています。 What’s new in Optimage 3 More compression : Significantly improved JPEG, PNG, GIF and WebP compression, added APNG, HEVC, MP4 and WebM compression. Resize and convert : Added h
Amazon Web Services ブログ AWS Lambda でのカスタムチェックポイントによるバッチ処理の最適化 AWS Lambdaは、Amazon Kinesis Data StreamsやAmazon DynamoDB Streamsなどのソースから取得した複数メッセージをバッチ処理できます。通常の操作では、処理を行う関数は1つのバッチから次のバッチに移動して、ストリームからのメッセージを消費します。 ただし、バッチ内のアイテムの1つでエラーが発生すると、そのバッチ内の同じメッセージ群の一部が再処理される可能性があります。新しいカスタムチェックポイント機能により、失敗したメッセージを含むバッチの処理方法をより詳細に制御できるようになりました。 このブログ記事では、バッチ失敗時のデフォルトの動作と、このエラー状態に対処するために開発者が使用可能なオプションについて説明します。
こんにちは、かたいなかです。 最近転職会議のバッチ処理をすべて冪等にし、処理失敗時に気軽に再実行できるようにすることで運用性を向上させました。 今回の記事ではその取り組みを紹介します。 再実行すると重複送信につながるメール送信バッチ もともと、転職会議では一部のバッチ処理を除いてほとんどのバッチ処理が冪等に作られていました。しかし、残りの冪等ではないバッチ処理では、失敗するたびに毎回アドホックな対応をする必要があり運用性に課題を抱えていました 残っていたもので一番大きな問題を抱えていたのがメール送信バッチです。これは、以下の図のようなアーキテクチャで動いており、ワーカーにメールを送信するように指示するメッセージをSQSにキューイングする処理を行うものです。 このメール送信バッチのキューイング処理が途中で失敗した際に、雑に再実行してしまうと同一のユーザに重複してメールが送信されてしまう事にな
追記 (2020/06/15) Container Insights は GA しています! tl;dr kobanzame 作ったもの 仕組み なんちゃってプラグインアーキテクチャ 使い方 設定ファイル 実行 Example 参考 それ, Container Insights で良いんじゃないのか おっしゃるとおり じゃあ, なぜ, 俺は kobanzame を作ったのか 以上 追記 (2020/06/15) Container Insights は GA しています! 2020/06/14 現在はベータ版として提供されていますが この記述は誤りで Container Insights は 2019 年 11 月には既に GA されておりますので, ここで訂正させて頂きます. aws.amazon.com 確認不足で誤った情報を記述してしまい大変申し訳ございませんでした. tl;dr 以
[Step Functions]動的並列処理(Map)を使って60分×24時間=1440ファイルのバッチ処理を楽々実装してみた こんにちは、平野です。 下記のブログで紹介されているように、 Step Functionsにて、配列の入力を個別のLambda等にバラまいて処理させるMapステートがサポートされました!! [アップデート]Step Functionsで動的並列処理がサポートされました! 担当していた案件で、S3上にある直近24時間分ファイル群(各ファイル名に秒までの時刻が入っている)を、 1分毎にまとめて別のバケットに移すような処理があり、 これはまさにMapステートに最適な素材でしたので、Mapステートを使ったリファクタリングをしてみました! この記事では、ServerlessFrameworkのStep Functionsプラグインを用いています。 (対応早くて助かる!!)
オープンソースの高速な国産リレーショナルデータベース「Tsurugi」が登場した。Tsurugiの特徴やアーキテクチャ、導入方法などを解説する。 来歴 Tsurugi1は、国のバックアップ2を受けて作られた、純国産のOSS-RDBです。もともと有志の勉強会から始まったコミュニティ活動がベースで、各民間企業(ノーチラス・テクノロジーズ/NEC)、大学(東京工業大学/慶応大学/名古屋大学/大阪大学)、研究機関(国立天文台)などが主体となり、さまざまな企業・関係者の協力のもとに開発された、次世代高性能RDBです。OSSなので、だれでも自由に利用できます。商用サポートも提供されています。 2 なお、国によるバックアップは国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)によるもので、「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発/次世代コンピューティング技
本日のアップデートで AWS Batch で AWS Fargate の利用が可能になりました! Serverless Batch Scheduling with AWS Batch and AWS Fargate AWS Batch for AWS Fargate AWS Batch はジョブをキューイングすると、定義された内容に従い自動的にコンピューティングリソースを起動し、計算処理を実行するバッチコンピューティングのサービスです。バックグラウンドでは Amazon ECS が動いているのですが、ユーザーは ECS を意識することがないようにラッピングされています。 従来はいわゆる ECS on EC2 がサポートされていましたので、ラッピングされてるとはいえ EC2 ホストの存在は少なからずとも意識する必要がありました。加えてゼロキャパシティからスケールする際は、キューイングしてから
2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「Scala ZIOをバッチ処理で使ってみた」に登壇したのは、リチャード伊真岡氏。講演資料はこちら 副作用を含むコードで関数型のテクニックを利用 リチャード伊真岡氏:「Scala ZIOをバッチ処理で使ってみた」という発表をします。リチャード伊真岡と申します。マーベリック株式会社というところで働いています。 今日一番大事なことを最初に言おうと思います。発表の内容はどうでもいいので、私の名前だけ覚えていってもらえば満足
こんにちは、Development部門に所属しているSREの佐藤と申します。 Development部門では複数プロダクト共通の基盤構築や、新技術の検証、インフラ整備などを幅広く担当しています。これまでストックマークではCI/CD基盤の構築やAWS上で構築するインフラのコード化、ニュース収集基盤のアーキテクチャの改善や運用負荷軽減から、製品利用状況のデータ分析基盤構築などに取り組んできました。 今日はAstrategyという製品でのMLOpsの取り組みについて話します。 AstrategyについてAstrategyは国内外Webメディアを対象として情報を収集・構造化し、調査・報告業務を包括的にサポートする検索プラットフォームです。 図1: 「言葉のAI」自然言語解析を用いたオープンデータ解析ツール 複数の分析画面を提供しており、目的に応じて異なる観点で市場変化や競合動向を可視化できます。
それぞれ微妙にできることや制限に違いがあり、ここを捉えた上で選択する必要があります。 Batchの強みはおそらくタイムアウトがないことによって長時間実行ができ、かつシンプルに実装できることだと思います。 (タイムアウト最大値に関して、Batchにおいては存在しないと公式動画の方で説明していますが、Cloud Composerについては不明でした。) Batch単体でもジョブ定義ファイル内で各タスクの依存関係(順次実行、並列実行)はできますが、Cloud ComposerやWorkflowsのように複雑なジョブネットを書くことは難しそうです。 ジョブネットのように動かしたい場合には公式ドキュメントにもあるようにWorkflowsなどからBatchジョブを実行するのが良さそうです。 動かしてみよう 実際にジョブを作って動かすまで試してみたいと思います。 GCP公式がBatchのサンプルコードを
WebPやHEICを含む画像ファイルの変換や圧縮、リサイズのバッチ処理が可能なMac用イメージコンバーター「Image Tool+」がリリースされています。詳細は以下から。 Appleは2020年秋にリリースするSafari v14やmacOS 11 Big Sur、iOS 14でGoogleが開発した画像フォーマット「WebP」をネイティブサポートしますが、そのWebPを含む画像ファイルの変換や圧縮、リサイズのバッチ処理を行ってくれるMac用イメージコンバーター「Image Tool+」がリリースされています。 Convert, Resize, Optimize and Compress various type of images.Preview result images with compare slider. Image Tool+ – Mac App Store Image T
このシリーズの 第2回 では、クライアントからバックエンドのサービスを利用する際に、なんらかの原因でエラーが発生した場合にクライアント側でリトライ処理が実行されると、リクエストが重複して送られる可能性があることを説明しました。クライアントからキューに対してメッセージを送信するようなサーバーレスのシステムにおいては、リトライ処理によって重複したメッセージが送信されてもメッセージの重複を排除する機能を利用することによってべき等性を実現する方法について解説を行いました。その中では、重複したメッセージをただ一度だけ処理する (Exactly Once) ことで、結果としてべき等性を実現するという具体的な実装方法と共に紹介しました。 第 3 回 では、キューからメッセージを取り出し、バックエンドのデータソースへ保存する処理においても、何らかのエラーによってリトライ処理が発生した場合に重複してデータの
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く