#はじめに
AWS ALBのコストを算出する機会があったものの
LCUコストの算出がすぐに理解できなかったので、
(https://aws.amazon.com/jp/elasticloadbalancing/pricing/?nc=sn&loc=3)
に記載の計算例を見てみることにしました。
#そもそもLCUとは?
LCUは「Load Balancer Capacity Units」の略でALBの使用量の単位です。
#料金例
ここからALBの料金表に記載の計算例を見ていきます。
※リージョンはアジアパシフィック(東京)を選択
※LCUがトラフィックを処理する尺度や既定値の情報に関しては、割愛させて頂きます。
詳細はALBの料金表を参照してください。
■例1
条件
(1) アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信
(2) それぞれ 2 分間継続すると仮定
(3) クライアントは毎秒平均 5 つのリクエストを送信
(4) リクエストと応答の合計処理バイト数は毎秒 300 KB
(5) クライアントのリクエストをルーティングする 60 個のルールを設定
・新しい接続(1秒あたり)
LCUは1 秒あたり 25 個の新しい接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信する・・・(1)
1/25 = 0.04LCU
・アクティブ接続(1分あたり)
LCUは1分あたり3,000 個のアクティブな接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信する・・・(1)
それぞれ 2 分間( 120秒 )継続すると仮定・・・(2)
120/3,000 = 0.04 LCU
・処理タイプ(バイト数:GB/時)
LCUは 1 時間あたり 1 GBの処理バイトを提供・・・(既定値)
アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信する・・・(1)
リクエストと応答の合計処理バイト数は毎秒 300 KB・・・(4)
1時間あたり
3006060 = 1,080,000 KB = 1.08 GB
1.08/1 = 1.08 LCU
・ルール評価(1秒あたり)
LCUは 1 秒あたり 1,000 個のルール評価を提供・・・(既定値)
アプリケーションは毎秒平均 5 つのリクエストを受信・・・(3)
各リクエストに対して 60 個のルールを設定・・・(5)
ルール評価数(1秒あたり)
(60-10)*5 = 250 個
250/1000 = 0.25 LCU
・最終評価
最もLCU値が大きい処理タイプ(バイト数:GB/時) = 1.08 LCUが計算対象となります。
LCU 時間(または 1 時間未満)あたり、0.008 USDより
1.08*0.008 = 0.00864 USD/時
上記の計算結果にApplication Load Balancer時間(または1時間未満)あたり、0.0243 USDを加えるとApplication Load Balancer の合計コストは以下のようになります。
0.00864+0.0243 = 0.03294 USD/時
0.032942430 = 23.7168 USD/月
■例2
条件
(1)アプリケーションが 1 秒あたり平均 100 個の新しい接続を受信
(2)それぞれ 3 分間継続すると仮定
(3)クライアントが 1 秒あたり平均 4 個のリクエストを送信
(4)接続あたり 1,000 バイトがプロセスされる
(5)クライアントのリクエストをルーティングする 20 個のルールを設定
・新しい接続( 1 秒あたり)
LCUは1秒あたり 25 個の新しい接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 100 個の新しい接続を受信・・・(1)
100/25 = 4 LCU
・アクティブ接続( 1 分あたり)
LCUは 1 分あたり 3,000 個のアクティブな接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 100 個の新しい接続を受信・・・(1)
それぞれ 3 分間(180秒)継続・・・(2)
18,000/3,000 = 6 LCU
・処理タイプ(バイト数:GB/時)
LCUは1時間辺り 1 GBの処理バイトを提供・・・(既定値)
アプリケーションが 1 秒あたり平均 100 個の新しい接続を受信・・・(1)
各接続 1,000 バイトのデータが転送される・・・(4)
1時間あたり
1,00010060*60 = 360,000,000 バイト = 0.36 GB
0.36/1 = 0.36 LCU
・ルール評価( 1 秒あたり)
LCUは 1 秒あたり 1,000 個のルール評価を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 100 個の新しい接続を受信・・・(1)
この 1 秒あたり平均 4 個のリクエストを受信・・・(3)
クライアントのリクエストをルーティングする 20 個のルールを設定・・・(5)
ルール評価数(1秒あたり)
(20-10)*400 = 4,000 個
4,000/1000 = 4 LCU
・最終評価
最もLCU値が大きいアクティブ接続( 1 分あたり)= 6 LCUが計算対象となります。
LCU 時間(または 1 時間未満)あたり、0.008 USDより
6*0.008 = 0.048 USD/時
上記の計算結果にApplication Load Balancer時間(または 1 時間未満)あたり、0.0243 USDを加えるとApplication Load Balancer の合計コストは以下のようになります。
0.048+0.0243 = 0.0723 USD/時
0.0723*24×30 = 52.056 USD/月
■例3
条件
(1)アプリケーションが 100 秒あたり平均 100 個の新しい接続を受信
(2)それぞれ 200 ミリ秒間継続すると仮定
(3)クライアントは毎秒平均 100 のリクエストを送信
(4)接続中のLambdaリクエストと応答の合計処理バイト数は毎秒 14 KB
(5)クライアントのリクエストをルーティングする 20 個のルールを設定
・新しい接続( 1 秒あたり)
LCUは 1 秒あたり 25 個の新しい接続を提供・・・(既定値)
アプリケーションが 100 秒あたり平均 100 個の新しい接続を受信・・・(1)
1/25 = 0.04 LCU
・アクティブ接続(1分あたり)
LCUは 1 分あたり 3,000 個のアクティブな接続を提供・・・(既定値)
アプリケーションが 100 秒あたり平均 100 個の新しい接続を受信・・・(1)
それぞれ 200 ミリ秒間継続すると仮定・・・(2)
100/3,000 = 0.03 LCU
・処理タイプ(バイト数:GB/時)
LCUはLambdaターゲット 1 時間あたり 0.4 GBの処理バイトを提供・・・(既定値)
接続中のLambdaリクエストと応答の合計処理バイト数は毎秒 14 KB・・・(4)
1時間あたり
1410060*60 = 5,040,000 KB = 5.04 GB
5.04/0.4 = 12.6 LCU
ルール評価( 1 秒あたり)
LCUは 1 秒あたり 1,000 個のルール評価を提供・・・(既定値)
このアプリケーションは毎秒平均 100 のリクエストを受信・・・(3)
クライアントのリクエストをルーティングする 20 個のルールを設定・・・(5)
ルール評価数(1秒あたり)
(20-10)*100 = 1,000個
1,000/1,000 = 1 LCU
・最終評価
最もLCU値が大きい処理タイプ(バイト数:GB/時)= 12.6 LCUが計算対象となります。
LCU 時間(または 1 時間未満)あたり、0.008 USDより
12.6*0.008 = 0.1008 USD/時
上記の計算結果にApplication Load Balancer時間(または 1 時間未満)あたり、0.0243 USDを加えるとApplication Load Balancer の合計コストは以下のようになります。
0.1008+0.0243 = 0.1251 USD/時
0.12512430 = 90.072 USD/月
■例4
条件
(1) アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信
(2) それぞれ 2 分間継続すると仮定
(3) クライアントは、1 秒あたり平均 50 のリクエストを送信
(4) リクエスト/応答ごとにロードバランサーを通じて転送された双方向の合計バイト数は 10 KB
(5) リクエストの平均 60 % はターゲットとして EC2 インスタンスによって提供され、
ターゲットとしての Lambda 関数によって 40 % 提供されます。
(6) クライアントのリクエストをルーティングする 50 個のルールを設定
・新しい接続(1秒あたり)
LCUは1 秒あたり 25 個の新しい接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信・・・(1)
1/25 = 0.04 LCU
・アクティブ接続(1分あたり)
LCUは 1 分あたり 3,000 個のアクティブな接続を提供・・・(既定値)
アプリケーションが 1 秒あたり平均 1 個の新しい接続を受信・・・(1)
それぞれ 2 分間( 120 秒)継続すると仮定・・・(2)
120/3000 = 0.04 LCU
・処理タイプ(バイト数:GB/時)
LCUはEC2ターゲット 1 時間あたり 1 GBの処理バイトを提供・・・(既定値)
リクエストの平均 60 % はターゲットとして EC2 インスタンスによって提供・・・(5)
1時間あたり
3006060 = 1,080,000 KB = 1.08 GB
1.08/1 = 1.08 LCU
LCUはLambdaターゲット 1 時間あたり 0.4 GBの処理バイトを提供・・・(既定値)
リクエストの平均 40 % はターゲットとして Lambda 関数によって提供・・・(5)
1時間あたり
2006060 = 720,000 KB = 0.72 GB
0.72/0.4 = 1.8 LCU
EC2 および Lambda ターゲット間のプロセスされたバイト数
1.08+1.8 = 2.88 LCU
・ルール評価(1秒あたり)
LCUは 1 秒あたり 1,000 個のルール評価を提供・・・(既定値)
クライアントは、1 秒あたり平均 50 のリクエストを送信・・・(3)
クライアントのリクエストをルーティングする 50 個のルールを設定・・・(6)
ルール評価数(1秒あたり)
(50-10)*50 = 2000 個
2000/1000 = 2.00 LCU
・最終評価
最もLCU値が大きい処理タイプ(バイト数:GB/時)= 2.88 LCUが計算対象となります。
LCU 時間(または 1 時間未満)あたり、0.008 USDより
2.88*0.008 = 0.0230 USD/時
上記の計算結果にApplication Load Balancer時間(または 1 時間未満)あたり、0.0243 USDを加えるとApplication Load Balancer の合計コストは以下のようになります。
0.0230+0.0243 = 0.0473 USD/時
0.04732430 = 34.056 USD/月