Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05

  1. 1. AWSにおけるバッチ処理の ベストプラクティス 都元ダイスケ 2014-06-28 @ Sapporo #cmdevio
  2. 2. 自己紹介 • よく訓練されたアップル信者、都元です。 • Webアプリ屋出身のAWS屋 • Classmethod所属 • AWS歴 2.5年 • @daisuke_m CloudFormation EC2S3 Glacier ElasticMapReduce AutoScaling ELB CloudFrontRDS DynamoDB ElastiCache RedShift IAM CloudWatch Beanstalk Data Pipeline OpsWorks CloudHSM CloudSearch SWF SQS SNS SES Transcoder Route53VPC DirectConnect StorageGateway Mechanical Turk CloudTrail AppStream Kinesis
  3. 3. バッチ処理とは? ‣ リアルタイム処理の対義語。 ‣ らしいのだが厳密な話は抜きだ。 ‣ 直感的に乱暴に。 HTTPリクエストに応答するための処理以外のもの #cmdevio
  4. 4. 要するに ‣ 運用上必要な情報を、随時担当者が抽出したりする ためのアドホック(場当たり的)処理。 ‣ データ移行とか、ちょっとした集計とか。 ‣ 随時発生するバックグラウンド処理。 ‣ ジョブスケジューラにトリガされる処理。 ‣ 遅延処理や定時処理。 #cmdevio
  5. 5. Design for failure (障害を見越した設計) ‣ まずはAZ障害に耐える設計を! ‣ AWSは比較的カジュアルにEC2 インスタンスに再起動を要求w ‣ だからMulti-AZで冗長化。 ‣ WebサーバはELBによる
 クラスタリング構成 ‣ RDBサーバはMulti-AZによる
 Master-Slave構成 #cmdevio
  6. 6. バッチ on AWS ‣ バッチサーバをAWSにどのように実装するか。 ‣ アドホック処理は素朴にどうぞ。 ‣ バックグラウンド処理は? ‣ ジョブスケジューラ処理は? cron ? #cmdevio
  7. 7. cronの問題点 冗長化できない… #cmdevio いや、できなくぁないですよ? でも、します?
  8. 8. Producer & Consumer ‣ producerというのはデータを 生産する生産者 ‣ consumerというのはデータを 消費する消費者 ‣ Queue(FIFOバッファ)で
 2者がつながる #cmdevio
  9. 9. ‣ producerはSQSにジョブリクエストを投げるだけ ‣ consumerはSQSをポーリングし、リクエストを 拾い次第Workerとして実作業を担う ‣ 可用性 (availability) を意識したら
 拡張性 (scalability) をも手に入れた! #cmdevio
  10. 10. SQS (AWSで提供するマネージド分散キュー) ‣ サービスレベルで Multi-AZ 冗長化対応済み ‣ スケーラブル ‣ であるがゆえに受け入れるべき制約 ‣ 順序保証しない(厳密にFIFOじゃない) ‣ at least once delivery ‣ Workerの処理は順序不問で冪等がベスト。 #cmdevio
  11. 11. #cmdevio
  12. 12. Workerの実装 ‣ Queueをポーリングする ‣ メッセージが来次第処理する ‣ メッセージの処理が成功したことを、Queueに 宣言する #cmdevio
  13. 13. めんどくさい 定型的な処理 #cmdevio
  14. 14. Beanstalk worker tier ‣ Beanstalkは一般的に、ELB+Webサーバの
 構成を提供してくれるデプロイ環境である。 ‣ だけどね。ELB+Webサーバだけではなくてね。 ‣ Queue+Workerサーバの環境も提供。 #cmdevio
  15. 15. worker / web tier #cmdevio
  16. 16. aws-sqsd #cmdevio
  17. 17. sample application #cmdevio
  18. 18. ジョブスケジューラ ‣ この問題が未解決 ‣ スケジュールに合わせたSQSメッセージ発行 ‣ 可用性(AZダウン耐性) ‣ 拡張性(トリガが増えても大丈夫) #cmdevio
  19. 19. Quartz と Brian ‣ QUARTZ ‣ JavaのOSSジョブスケジューラ ‣ RDBMSをセマフォとした分散・同期 ‣ Brian by ‣ QUARTZをラップしたBeanstalkアプリ ‣ Web tier / internal ELBで使うとよい #cmdevio
  20. 20. #cmdevio
  21. 21. Developers.IO Job Worker 三部作 http://bit.ly/aws-worker-sqs
 http://bit.ly/aws-worker-beanstalk
 http://bit.ly/aws-worker-brian

    Be the first to comment

    Login to see the comments

  • fukuihi

    Aug. 13, 2015
  • HidekazuMiyamoto

    Sep. 3, 2015
  • ssuser1344d2

    Sep. 4, 2015
  • ssuser14ba1a

    Sep. 7, 2015
  • tokiss

    Sep. 9, 2015
  • HK-JPN

    Sep. 17, 2015
  • tanakaryo50

    Nov. 13, 2015
  • KimuraHiroshi

    May. 27, 2016
  • MorimotoYasuhiko

    Jul. 25, 2016
  • Uyauyamit

    Sep. 2, 2016
  • rhw4u

    Oct. 11, 2016
  • HirokiTakami

    Mar. 15, 2017
  • keisukekosaki

    Mar. 23, 2017
  • ssuser522b07

    May. 15, 2017
  • AtsushiIshibashi1

    Jul. 8, 2017
  • junikeda7568

    Dec. 8, 2017
  • ssuser9ad8dd

    Feb. 11, 2018
  • TomoeTeshima

    Sep. 30, 2018
  • lightkyoro

    Apr. 8, 2019
  • SatoshiShimizu2

    Dec. 26, 2019

Views

Total views

52,439

On Slideshare

0

From embeds

0

Number of embeds

1,020

Actions

Downloads

71

Shares

0

Comments

0

Likes

45

×