1
1

More than 1 year has passed since last update.

Lambda で どうしても大きい容量のライブラリが必要な場合

Last updated at Posted at 2022-11-18

Selenium を動かすときにはまったので、備忘録として。

の内容の追加になります。

Lambda のレイヤーでは対応できない場合

Lambda のレイヤーを使えば、250MB までのライブラリを比較的簡単にインストールできます。
ですが、250MB 以上になった場合は、どうしても EFS を使って EC2 も使って ライブラリを呼び出す必要があります。

使い方は、

に載っている通りなのですが、いくつかハマるポイントがあるので、それを説明します。

2049番ポートからのアクセスを開放しているセキュリティグループ

EC2 のセキュリティルールで、インバウンド 2049・アウトバウンド全許可のルールを作りましょう。SSH も忘れずに。

Lambda への ポリシーのアタッチ

にポリシーへのアタッチの方法が書いてあります。
2つ続けて、基本的なことですが。

インターネット接続できない

Selenium で何回やっても、空のHTML しか出力されないのでおかしいと思ったら、VPC Lambda を設定する場合は、自分でインターネット接続をできるように設定をしないといけないようです。

プライベートサブネットの作り方。

??.??.0.0/20 と ??.??.??.0/20 の2つのパブリックサブネットが作られていますが、インターネットに接続するには、プライベートサブネットを作る必要もあります。
そこで問題になるのが、CIDR に何を入れるかです。
自分の場合は、??.??.32.0/20 で動くものができました 。間違っていたりしたら、ご指摘お願いします。

その他 Selenium の設定

Selenium の設定で、空のHTMLが出力される場合

日本語文字化け対策

/mnt/efs/ 直下で、

を適用して、Lambda の環境変数を、/mnt/efs にすれば直ります。Selenium も ChromeDriver 2.43以降 & Chromium 68以降 だと基本的に EFS 使わないと、250MB超えてしまうので、.fontsheadless/mnt/efs 配下に置きます。


他のものも思い出したら、追記します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1