#!/bin/bash
url=$1 # 第1引数としてURLを受け取る
n=$2 # 第2引数としてリクエストの回数を受け取る
# 引数が指定されていない場合はエラーメッセージを表示して終了する
if [ -z "$url" ] || [ -z "$n" ]; then
echo "Usage: $0 <url> <request_count>"
exit 1
fi
# 同時にリクエストを送信する関数
send_request() {
curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' "$url" >/dev/null 2>&1
}
# バックグラウンドでリクエストを送信する
for ((i=1; i<=n; i++)); do
send_request &
done
# バックグラウンドで送信中のリクエストを待つ
wait
同時実行数予約で指定した数を超えたリクエストを送信するとコールドスタートが発生します。
料金体系について
PC を利用した場合、主に以下 4 つに対して課金されます。
割当てメモリ性能
処理時間
ウォームスタートでの処理時間。(料金はメモリ性能に連動します。)
リクエスト数
100 万リクエストで 0.20 ドル
月初めの最初の 100 万リクエストは無料。
PC の数
予約した同時実行の数。
メモリ性能、処理時間、リクエスト数は通常の Lambda と同様です。
月の利用料金はこれらを合計したものですが、利用料金の大半は PC の数が影響するでしょう。
例えば PC の数を 5 に設定した場合、PC の数に対する課金で 721.03 ドル(2023/5/27 時点)です。
まとめ
この記事では PC の特徴、メリットデメリット、設定方法、反映の確認方法、料金体系について解説しました。
PC を利用することで通常の Lambda 関数に比べて大幅にパフォーマンスは向上しますが、その分利用料金が高額になりやすいです。
冒頭でも述べましたが、費用対効果をよく検討してから導入するか決定しましょう。