AWSでスクレイピング環境をつくる② 環境構築

前回、インスタンスの立ち上げとユーザーの設定までいきました。

今回は、環境構築を行います。

前回の記事はこちら

AWSでスクレイピング環境をつくる① インスタンス作成・ユーザー作成

全体の流れ

①アカウント登録

②サーバーのインスタンスを建てて

③開発者用のユーザーを作って ← 前回はここまで

④環境構築 ←今回のお話

環境構築について

環境構築は、大きく分けて2つのステップで行います。

①Python実行環境の導入

②Selenium実行環境の導入

①のPython等の動作環境を導入することは、割と簡単にできると思いますが、②のSeleniumを動作させるための環境を用意するのが少し手間でした。

Pythonの動作環境の構築

まず、EC2のインスタンスに入るために、コマンドライン上でログインしましょう。

詳しい方法については、インスタンスの接続はEC2内のインスタンスを選び、対象のインスタンスが選択された状態で接続ボタンを押すと詳しい手法が載っています。

EC2ダッシュボード内のインスタンスを選んで

インスタンスにチェックが入っている状態で接続を押すと

インスタンスへの接続方法についての詳細な方法が出る。

で普通にSSH接続できるのですが、毎回コマンドを打ち込むんのはめんどくさいので、git bash入れている方はssh接続の設定ができる~/.ssh/configを設定しておきましょう。

※鍵の場所は指定してあげないと、鍵が無いってエラーがでます。

今回の場合だと

ssh aws1

で接続できるようになります。

ここからはPythonのアップデートと環境の切り替え、それからSelenium等の依存関係のダウンロードをしていきます。といってもすぐですけど。

もともとPython2.6は導入されているようなので、pyenvをインストールして、その後globalのPythonのバージョンを切り替えましょう。(pyenvを勧めていますが、記事を書いているときに調べるとvirtualenvがデファクトスタンダードになっていたので、そちらで環境を構築されることを勧めておきたいです・・・)

pyenvのインストール・パスを通す。

~/.bash_profile 内

パスを通した後は、

パッケージについては、pipenvでまるっと導入する。これはPHPでいうComposer的なやつで、パッケージ管理をしてくれている。

Pipfile、Pipfile.lockをディレクトリの中に入れて、

Seleniumの動作環境の準備

AWSはHerokuと異なり、ChromeDriverを動かす環境を自前で用意しないといけない。

ので、入れていきます。

ここの記事を参考にしました。

Amazon LinuxでSelenium環境を最短で構築する

Google Chrome のインストール
GConf2 のインストール
ChromeDriver のインストール
Google Noto Fonts のインストール
Selenium のインストール

Amazon LinuxでSelenium環境を最短で構築する

備考① GConf2のインストールについて

参考ではGConf2のインストールの際に、yum install GConf2が出来ない旨を書かれているのですが、sudo yum install GConf2 で通って問題なく動いているので、その点は短縮できると思います。他のことについては同じことをしているので、割愛させていただければと思います。

備考②Seleniumのオプションについて

Seleniumのオプションについては、

options.add_argument(“–no-sandbox”)
options.add_argument(“–disable-setuid-sandbox”)

を追加しました。

これは、AWS環境で、

selenium.common.exceptions.WebDriverException: Message: chrome not reachable

とエラーが出るようになったため、追加した項目です。

参考:Chrome not reachable error when running Selenium test on Linux

以上で環境構築は終了です。

あとはリモートリポジトリからお好みのプログラムをCloneして、動かしていきましょう。