Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

5億件以上の求人情報を蓄積する汎用クローラエンジンのアーキテクチャと運用

1.735 visualizaciones

Publicado el

「クローリングのスペシャリストが語る、クローラー運用の裏側!#crawler_ops」に登壇した際の資料です。

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

5億件以上の求人情報を蓄積する汎用クローラエンジンのアーキテクチャと運用

  1. 1. © Goalist Co.,Ltd. All rights reserved. 5億件以上の求人情報を蓄積する 汎用クローラエンジンのアーキテクチャと運用 株式会社ゴーリスト 鈴木 隆宏 2016/08/21 #crawler_ops
  2. 2. © Goalist Co.,Ltd. All rights reserved. INDEX 1.自己紹介 2.会社紹介 3.クロール基盤 概要 4.クロール基盤 アーキテクチャ 5.クロール基盤 運用 6.今後の課題 2
  3. 3. © Goalist Co.,Ltd. All rights reserved. 自己紹介 3
  4. 4. © Goalist Co.,Ltd. All rights reserved. 名前 - 鈴木 隆宏(すーざん、すずたか、@_suzutt) 経歴 - 2016年6月にゴーリストに入社 - クローラ保守・運用 - Webサービス開発 - 以前はERPパッケージベンダーでパッケージ開発・保守 4
  5. 5. © Goalist Co.,Ltd. All rights reserved. 会社紹介 5
  6. 6. © Goalist Co.,Ltd. All rights reserved. 社名 株式会社ゴーリスト(Goalist Co.,Ltd) 住所 東京都千代田区神田須田町1‐18 アーバンスクエア神田ビル2階 設立 2011年1月5日 資本金 1,000 万円 役員 代表取締役 CEO 加藤 龍 取締役 CTO 入倉 康輔 取締役 COO 林 慶宗 事業内容 Airbnb・民泊運用データ分析・提供サービス「BnBInsight」 求人マーケットの戦略立案に特化した3C分析サービス「3Chart」 アポイントの獲得支援に特化したテレアポ管理ツール「KeyTalk」 高精度営業リスト生成ツール「Listlus」 求人情報アラートサービス「Reagle」 HRに特化したデータベース&ニュースメディア「HRog」 6
  7. 7. © Goalist Co.,Ltd. All rights reserved. クロールの目的は? 7
  8. 8. © Goalist Co.,Ltd. All rights reserved.8
  9. 9. © Goalist Co.,Ltd. All rights reserved. 求人データ集計サービス 9
  10. 10. © Goalist Co.,Ltd. All rights reserved. 人材業界向けオウンドメディア 10
  11. 11. © Goalist Co.,Ltd. All rights reserved. 民泊データ分析 11
  12. 12. © Goalist Co.,Ltd. All rights reserved. 導入企業様(一部抜粋) 東京大学 100社を超える人材会社や、事業会社の採用担当者、研究機関にご利用いただいております。 12
  13. 13. © Goalist Co.,Ltd. All rights reserved. 取得サイト数 約150サイト サービスを支える独自クロール基盤 取得総件数 5億件超 月間取得求人件数 2,000万件 稼働中サーバー台数 160台 マスタDB件数 900万件 最大取得項目数 50項目 13
  14. 14. © Goalist Co.,Ltd. All rights reserved.14 サービスを支える独自クロール基盤
  15. 15. © Goalist Co.,Ltd. All rights reserved. ここから本題 15
  16. 16. © Goalist Co.,Ltd. All rights reserved. クロール基盤 概要 16
  17. 17. © Goalist Co.,Ltd. All rights reserved. クロール基盤開発の主要件 17
  18. 18. © Goalist Co.,Ltd. All rights reserved. 18
  19. 19. © Goalist Co.,Ltd. All rights reserved. few people 19
  20. 20. © Goalist Co.,Ltd. All rights reserved. クロール基盤開発の主要件 1. 最小限の開発・運用工数で多くの求人媒体に対応すること 2. エンジニア以外のメンバーでも運用可能であること 20
  21. 21. © Goalist Co.,Ltd. All rights reserved. HOW? 21
  22. 22. © Goalist Co.,Ltd. All rights reserved. サイトごとに異なるクロール・スクレイプ処理のルールを 設定により吸収する方式を採用 22
  23. 23. © Goalist Co.,Ltd. All rights reserved. 1つのエンジン(=ソースコード) 23
  24. 24. © Goalist Co.,Ltd. All rights reserved. 媒体ごとに設定ファイル 24
  25. 25. © Goalist Co.,Ltd. All rights reserved. 設定ファイルとEC2インスタンスの用意のみで 様々な求人サイトへ対応可能 EC2 instance config files 25
  26. 26. © Goalist Co.,Ltd. All rights reserved. プログラミング不要 エンジニアではないメンバーでも取得が可能 26
  27. 27. © Goalist Co.,Ltd. All rights reserved. クロール基盤 アーキテクチャ 27
  28. 28. © Goalist Co.,Ltd. All rights reserved. EC2 instance contents jar scraped files Amazon S3 ・ ・ ・ start Amazon RDS job results config files 28 scheduler
  29. 29. © Goalist Co.,Ltd. All rights reserved. EC2 instance contents jar ・・・ scraped files Amazon S3 ・ ・ ・ scheduler start Amazon RDS job results config files 29
  30. 30. © Goalist Co.,Ltd. All rights reserved. Amazon S3 ・ ・ ・ Amazon Redshift 30 format & deliver
  31. 31. © Goalist Co.,Ltd. All rights reserved. 言語 Java(JSoup/WebDriver) 運用規模 150サイト/160EC2インスタンス S3容量 約8TB AWS運用コスト 約20万円/月 運用工数 約20h/週 31
  32. 32. © Goalist Co.,Ltd. All rights reserved. AWSを徹底利用 AWS Lambda Amazon EC2 Amazon S3 Amazon CloudFront Amazon DynamoDB Amazon Redshift Amazon API Gateway Amazon RDS 32
  33. 33. © Goalist Co.,Ltd. All rights reserved. クロール基盤 運用 33
  34. 34. © Goalist Co.,Ltd. All rights reserved. クロール設定ファイルについて 34
  35. 35. © Goalist Co.,Ltd. All rights reserved. 「検索結果ページ」と「詳細ページ」からなる サイトのクロールに特化 35
  36. 36. © Goalist Co.,Ltd. All rights reserved.36 検索結果ページ 詳細ページ
  37. 37. © Goalist Co.,Ltd. All rights reserved. 設定する内容 1.ページングルール 2.詳細ページのURL取得ルール 37
  38. 38. © Goalist Co.,Ltd. All rights reserved. ページングルール 38 https://www.google.co.jp/#q=goalist&page=1 https://www.google.co.jp/#q=goalist&page=2 1ページ目 2ページ目 ※URLは架空です。
  39. 39. © Goalist Co.,Ltd. All rights reserved. ページングルール 39 300 件 (0.30 秒) #resultStats 1ページあたり3件の 詳細ページURL
  40. 40. © Goalist Co.,Ltd. All rights reserved. 詳細ページのURL取得ルール 40 div.g > div:nth-child(1) > h3:nth-child(1) > a:nth-child(1)
  41. 41. © Goalist Co.,Ltd. All rights reserved. nextPagePreStr=&page= nextPagePostStr= searchResultCountSelector=#resultStats searchResultCountPreStr= searchResultCountPostStr=件 searchResultCountByPage=3 detailPageUrlSelector=div.g >div:nth-child(1) > h3:nth-child(1) > a:nth-child(1) 41 ページングルール 詳細ページのURLルー ル 設定ファイル例
  42. 42. © Goalist Co.,Ltd. All rights reserved. サイト改変があった場合、設定ファイルのみ修正すればOK 42
  43. 43. © Goalist Co.,Ltd. All rights reserved. 非エンジニアでも運用可能 43
  44. 44. © Goalist Co.,Ltd. All rights reserved. スクレイプについても同様 (`・ω・´ )キリッ 44
  45. 45. © Goalist Co.,Ltd. All rights reserved. 運用のポイント 45
  46. 46. © Goalist Co.,Ltd. All rights reserved. 運用コストの最小化 インスタンス起動と同時にクロール開始 取得が終わると自動で停止 46
  47. 47. © Goalist Co.,Ltd. All rights reserved. サイト改変に素早く対応 ジョブ実行結果をChatWorkに随時通知 Amazon EC2 47
  48. 48. © Goalist Co.,Ltd. All rights reserved. 2ヶ月間、運用してみた感想 48
  49. 49. © Goalist Co.,Ltd. All rights reserved. ノンプラグラミングでクロールできるため、 サイト改変対応が楽 49 ◎
  50. 50. © Goalist Co.,Ltd. All rights reserved. ある程度のWeb知識があれば、2,3週間くらいで、 ほぼ一人で運用できるようになる 50 ◎
  51. 51. © Goalist Co.,Ltd. All rights reserved. サイトによっては設定のみで スクレイプするのは辛い (繰り返し処理、条件分岐の設定も追加したい) 51 △
  52. 52. © Goalist Co.,Ltd. All rights reserved. 設定ファイル変更のたびに インスタンスを起動するのが少し面倒 52 △
  53. 53. © Goalist Co.,Ltd. All rights reserved. 今後の課題 53
  54. 54. © Goalist Co.,Ltd. All rights reserved. 汎用化 データの高精度化 54
  55. 55. © Goalist Co.,Ltd. All rights reserved. インフラ構成の汎用化 55
  56. 56. © Goalist Co.,Ltd. All rights reserved. 管理画面の追加 56
  57. 57. © Goalist Co.,Ltd. All rights reserved. 動的ページのクロール汎用化 57
  58. 58. © Goalist Co.,Ltd. All rights reserved. より汎用的なサイト構造に対応するクローラエンジンへ 58
  59. 59. © Goalist Co.,Ltd. All rights reserved. 文字列処理(自然言語処理)の精度向上、機械学習の採用 59
  60. 60. © Goalist Co.,Ltd. All rights reserved. 次期バージョンのクローラ開発へ より汎用的で、誰もが簡単に利用できる クローラを作りたい... 60
  61. 61. © Goalist Co.,Ltd. All rights reserved. 新領域のビックデータサービスを 開発してくれるエンジニアを絶賛募集中です! 開発エンジニア絶賛募集中! 61
  62. 62. © Goalist Co.,Ltd. All rights reserved. Thanks for your attention! 62

×