はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Google Apps Scriptの無料制限メモ

Google Apps Scriptの無料制限メモ

Google Apps Scriptの無料制限のメモ. 以下のページにまとめられている.

Quotas for Google Services  |  Apps Script  |  Google Developers

制限一覧

操作 一般ユーザー(gmail.com
カレンダーの予定の作成 5000 個/日
連絡先の作成 1000 個/日
ドキュメントの作成 250 個/日
1 日あたりのメール受信者 100 個/日
Gmail の読み取りと書き込み(送信以外) 20000 個/日
グループの読み取り 2000 個/日
JDBC 接続 10000 個/日
JDBC 接続の失敗 100 個/日
プレゼンテーションの作成 250 個/日
プロパティの取得または設定 50000 個/日
SOAP の呼び出し 5000 個/日
スプレッドシートの作成 250 個/日
トリガーの合計実行時間 1 時間/日
URLFetch の呼び出し 20000 個/日
URLFetch のデータの受信 100 MB/日

ここで,ネックになりやすいのは, URLFetch関連とトリガーの合計実行時間になると思うので個別にまとめる.

URL Fetch関連

URL Fetchでは,HTTP Requestの操作ができる.つまり,スクレイピングができる.

  • 呼び出し回数の制限: 無料アカウントでは,URLFetch の呼び出し回数が決まっており,20000 個/日となっている.なので,1日あたりHTMLを20000ページまでアクセスできる.

  • データ容量の制限: 1日あたり100MBまでとなっている.なので,もし上限20000ページまでアクセスするならば,平均100MB/20000 = 0.005MB = 5kB以下にしなければならない.

各ページに対しての平均容量の上限を計算すると,

1日にアクセスするページ 平均容量の上限
5 20[MB]
10 10[MB]
50 2[MB]
100 1[MB]
500 200[kB]
1000 100[kB]
5000 20[kB]
10000 10[kB]
15000 6.67[kB]
20000 5[kB]

トリガーの合計実行時間

Google Apps Scriptではトリガーを設定して,cronのように1分おき・10分おきなどに起動できる.

しかし,制限により,トリガーでのGoogle Apps Scriptの1日の実行時間は1時間と決まっている.1時間を超えた場合,その日のトリガーでの起動は無くなる.

例えば,1時間に1回起動するならば, 平均実行時間は60[分]/24[回/日]=2.5[分/回]以内にしなければならない.

このことを踏まえて,トリガー時間に対しての平均実行時間の上限を計算してみる.

トリガー間隔 1回あたりの平均実行時間の上限
1分おきに1回 2.5[s]
5分 12.5[s]
10分 25[s]
15分 37.5[s]
30分 1.25[分]
1h 2.5[分]
6h 15[分]
12h 30[分]
1日(24h) 1[h]

スクレイピングにおいて設定しそうな10分おきのトリガーを設定した場合, 1回あたりの実行時間を25[s]以内にしなければならないので注意.

実行時間の確認

スクリプトエディタから「表示 > 実行トランスクリプト」から実行すると, ループなどの処理ごとの実行時間を確認できる.

実行トランスクリプト