第3回Webスクレイピング勉強会@東京 
! 
AWSを利用して 
スクレイピングの悩みを 
解決するチップス 
2014年10月26日 
@dkfj 佐々木拓郎
✦ プロフィール 
‣ Webシステムを得意とするSIerで勤務 
‣ 最近の仕事はAWS事業の推進・モバイルアプリ開発 
‣ Webスクレイピングして、データマイニングするのが趣味 
★ ソーシャル・ネットワーク 
‣ blog: http://blog.takuros.net/ 
‣ twitter: @dkfj 
‣ Facebook: takuro.sasaki 
‣ SlideShare: http://www.slideshare.net/takurosasaki/ 
@dkfj 
自己紹介: 佐々木拓郎
主にJAWSUG大阪で活動していました 
(AWS勉強会)
宣伝!! 
クローラー/スクレイピング本を書きました。 
「Rubyによるクローラー開発技法」 
ご大層な名前ですが、初中級者向けです。 
http://bit.ly/crawler_book
予想に反して、売上げ好調です。 
発売2ヶ月経過で、増刷2回。 
Amazonの幾つかのカテゴリで、 
ランキング1位継続中。
大量のデータを集める際に、 
困ることベスト3
データ収集の課題 
• クローリング(巡回)に時間が掛かる 
• IPアドレス制限 
• データの保存方法
クローリング(巡回)に時間がかかる 
• 収集先が膨大 
 (対象サイト数×ページ数。何百~何千万件というケースも) 
• 収集するデータが大きい 
 (画像系であれば、その傾向が顕著)
IPアドレス制限 
• 単位時間あたりで規定の回数を超えるとブロックされる 
 (1分間あたり200回など。最近は、リスト型アカウントハッキングの影響で厳しめに) 
• IPアドレスをトリガーにされる場合が多い 
 (Google BAN) 
!
データの保存方法 
• 収集してきたデータを長期間に渡って保存するのは難しい 
• データ量、端末の変更、整理 
 (容量の問題、端末を入れ替えた際にデータ紛失)
AWSを使うと、解決できるよ
 Amazon Web Services(AWS)とは、Amazon.com によ 
り提供される各種遠隔コンピューティングサービス(ウェブサー 
ビス)である。 
 2006年7月に公開され、Amazon Web Services は他のウェ 
ブサイトやクライアントサイドアプリケーションに対しオンライ 
ンサービスをち提ょ供っしてとい理る解。でこれきらなのいサー。ビ。ス。 
の多くはエンドユー 
ザに直接公開されているものではなく、他の開発者が使用可能な 
機能を提供するものである。 
 Amazon Web Services の各種サービスはHTTPを通じ、 
REST および SOAP プロトコルを使用してアクセスされる。費用 
は実際の使用量に応じて決定される。 
ウィキペディアより
AWSを三行で説明すると 
• Amazonが提供するクラウドサービス 
• 仮想コンピュータ(EC2)とストレージサービス(S3)を 
中心に、数十のサービスを提供 
• 基本的には従量課金なので、使った分だけの支払い
コンピュータ処理 
Amazon EC2 
AWSのサービス一覧 
ストレージ 
Amazon S3, Glaicer 
Amazon EBS 
データベース 
Amazon RDS, DynamoDB 
Amazon Simple DB 
Elasticache, Redshift 
コンテンツ配信 
Amazon 
CloudFront 
メッセージ 
Amazon SNS 
Amazon SQS 
分散処理 
Elastic 
MapReduce 
メール配信 
Amazon SES 
ワークホース 
Amazon 
Mechanical Turk 
認証&請求 
AWS IAM 
Identity Federation 
Consolidated Billing 
モニタリング 
Amazon 
CloudWatch 
スケーリング 
Auto Scale 
ネットワーク&ルーティング 
Amazon VPC 
ELB, Route53 
AWS DirectConnect 
ライブラリ&SDKs 
Java, PHP, .NET, 
Python, Ruby 
Webインターフェース 
Management 
Console 
IDEプラグイン 
Eclipse, 
Visual Studio 
デプロイと自動化 
Elastic Beanstalk 
CloudFormation 
OpsWorks 
この辺りを 
使います
Amazon Elastic Compute Cloud(Amazon EC2) 
仮想コンピュータサービス 
• AWSの中核サービス 
• インスタンスサイズごとに価格設定。1 
時間単位の課金 
• パブリックIPが自動的に付与。 
 (一定の条件あり) 
• 1時間あたり、$0.013(≒1.4円)から 
 スポットインスタンスを利用すれば、$0.0031(≒0.3円)
Amazon Simple Storage Service(Amazon S3) 
オンラインストレージ・サービス 
• AWSのもう1つの中核サービス 
• 月々$0.0300 /GB。 
• 1TB保存で、3000円強。 
• 容量無制限。(お金があれば) 
• 他にもAPIリクエスト料も必要。 
• 99.999999999%の堅牢性
Amazon Simple Queue Service(Amazon SQS) 
プル型のキュー・サービス 
• 最古のAWSサービス 
 (2004年サービス開始) 
• 疎結合アーキテクチャの肝 
 (サービス間連携に大活躍) 
• 低コスト 
 (月間無料枠&非常に低価格な従量課金制) 
参照:Amazon Simple Queue Service(SQS)の使い方 
http://d.hatena.ne.jp/dkfj/20130205/1360076804
デモ
ユースケース
EC2を単純に並べる 
• 複数のリソース、IPアドレスを同時に利用できる 
• 1台×10時間でも、10台×1時間でも料金は同じ 
! 
AWSでスポットインスタンスの活用 
$0.0031×50台≒約16円
EC2の処理結果をS3に集約する 
• EC2が集めたデータを、S3に保存する 
• 集計結果をデータベースに保存するのもあり
SQSを利用して、ジョブ制御 
• 複数台のEC2をコントロールするのは、面倒くさい 
• EC2内のプログラムは、SQSから指令を受けるよう作る 
• キューをコントロールすることで、EC2を操作できる
注意点
巡回先サイトに配慮する 
• 1秒ルール 
• 同一サイトを対象にする場合は、多重度をあげない 
• Robots.txtの尊重 
• 動的サイトの場合は、特に注意 
 (動的サイトで中小システムであれば、秒あたりの処理件数は20~30件くらい)
まとめ 
! 
‣ AWSは、個人でも使える 
‣ クローラー作成/スクレイピングとの相性よし 
‣ 取得先サイトに迷惑をかけないように
ご清聴ありがとうございました 
後日の質問は、@dkfjまで

Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス