SeleniumのStandaloneをAWSのEC2で構築してみた
Contents
はじめに
以前 SeleniumのStandaloneをGoogleCloudの無料枠で構築してみた で GoogleCloud のVMインスタンスでSeleniumサーバを立ち上げる手順を記載していたのですが、最近個人的にもAWSの利用が増えてきたので、いっそAWSで構築できないものかと模索したものです。
EC2の設定
基本のセットアップ
後の各ツールのセットアップ等で必要になるツールをインストールしておきます。Javaのバージョンだけ少しややこしかったので注意。
# パッケージのアップデート
$ sudo yum -y update
# 必要パッケージのインストール (本来なら互換性のあるバージョンを指定した方がいい)
$ sudo yum -y install sudo wget unzip
# Javaの再インストール (既存のJavaだとうまく動作しなかった)
$ sudo yum -y remove java
$ sudo yum -y install java-1.8.0-amazon-corretto.x86_64 java-1.8.0-amazon-corretto-devel.x86_64
Chromeのインストール
もともとZipで落とす方式を考えていましたが、リポジトリを追加した方が管理もインストールも楽なように思ったので、こちらにキャストしています。
# リポジトリの追加
$ sudo vi /etc/yum.repos.d/google.chrome.repo
```
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
```
# Chromeのインストール
$ sudo yum -y install google-chrome-stable
# バージョン確認 (後で必要になる!)
google-chrome --version
ドライバのインストール
Chromeのバージョンに合ったものをインストールします (ここ重要)。
# ドライバのインストール
$ wget https://chromedriver.storage.googleapis.com/114.0.5735.16/chromedriver_linux64.zip
# 解凍
$ unzip chromedriver_linux64.zip
# バージョン確認
$ ./chromedriver --version
フォントのインストール
スクリーンショットを取る場合など、日本語化しておいた方が便利なこともあります。オプショナルで。
# フォントのインストール
$ wget https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip
# 解凍
$ unzip IPAexfont00401.zip
# ディレクトリの作成と移動
$ sudo mkdir /usr/share/fonts/ipa
$ sudo mv IPAexfont00401/*.ttf /usr/share/fonts/ipa/
# フォントの適用
$ fc-cache -fv
SeleniumServerのインストール
# SeleniumServerのインストール
$ wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.4.0/selenium-server-4.4.0.jar
インスタンス起動時の設定
SeleniumServerを起動しないと操作もできないので、インスタンス起動時に併せて起動するよう設定しておく。
詳細は参考の通り。
$ sudo vi /etc/systemd/system/custom.service
```
[Unit]
Description=start Selenium Standalone
After=syslog.target network-online.target
[Service]
User=ec2-user
Type=oneshot
RemainAfterExit=no
KillMode=none
ExecStart=/bin/bash -c 'cd /home/ec2-user; java -jar selenium-server-4.4.0.jar standalone --port 4444 &'
[Install]
WantedBy=multi-user.target
```
起動コマンド
単体で確認する時に。
$ java -jar selenium-server-4.4.0.jar standalone --port 4444
参考
- 『面倒なブラウザ操作をSeleniumを使って自動化する-Vol.03(環境構築編) / 開発者向けブログ・イベント』, GMO Developers, https://developers.gmo.jp/19955/, 2023-07-17
- Chrome、ドライバ、フォントなどの設定が詳細に記載されている
- 『ChromeDriver』, WebDriver for Chrome, https://chromedriver.chromium.org/home, 2023-07-17
- ドライバのインストールはここから
- 『systemdでEC2の起動時・停止時にコマンドを実行してみる』, DevelopersIO, https://dev.classmethod.jp/articles/execute_command_start_stop_ec2_with_systemd/, 2023-07-17
- タイトル通り、非常にわかりやすい記事で、大いに参考にさせていただきました。