EC2 で Selenium WebDriver を動かしたときのメモ
Ruby + Selenium WebDriver を使ったプログラムを EC2 でを動かせるようにしたときのメモです。
Amazon Linux AMI では firefox や X 関係がいろいろと面倒だったので、 今回は Debian のオフィシャル AMI を使いました。 他のディストリビューションの方がパッケージが充実してて良いかもしれません。 AMI もオフィシャルのものがそれぞれリリースされているようです。
Debian オフィシャル AMI
下記に AMI の ID が記載されているので、EC2のインスタンス作成のときに指定します。
Cloud/AmazonEC2Image - Debian Wiki
ユーザー名は "admin" です。
初期設定
タイムゾーンの設定と tmux のインストール
$ sudo apt-get update $ sudo dpkg-reconfigure tzdata $ sudo apt-get install tmux
VNC サーバーのインストール
VNC サーバーとウィンドウマネージャをインストールします。
$ sudo apt-get install tightvncserver openbox
VNC で接続するときのパスワードの設定が事前に必要です。
$ tightvncpasswd
~/.profile に下記の設定を追加します。
export DISPLAY=":0"
Xorg とかをインストールしなくても、VNCサーバーがXサーバーの役割を果たしてくれるようです。
firefox のインストール
firefox-esr の本体と、日本語フォント(IPAフォント)を入れます
$ sudo apt-get install firefox-esr-l10n-ja fonts-ipafont
ローカルマシンから VNC で接続
VNC サーバーを起動します。(openbox も勝手に起動します)
$ tightvncserver ":0"
ローカルマシンから ssh のポートフォワーディング(ローカルの 5900 からリモートの 5900 へ)を開始します。
$ ssh -L 5900:localhost:5900 admin@XXXXXX cat
この状態で、 Mac であれば Finder > 移動 > サーバーへ接続 を選択したあと、 サーバーアドレスに
vnc://localhost:5900
を入れてやれば VNC による接続ができます。
Ruby と gem
ruby と必要な gem をインストールします。 gem のネイティブ部分のコンパイルで怒られるのでいくつか追加でライブラリ類をインストールしています。
$ sudo apt-get install ruby ruby-dev zlib1g-dev $ sudo gem install selenium-webdriver nokogiri pry
参考にさせていただいたページ
いろんなOSのAMIについてまとめられています
OSごとのオフィシャルなAMIをまとめてみた | mooapp
タイムゾーンの設定