Skip to content

Instantly share code, notes, and snippets.

@kurochan
Created October 28, 2022 03:15
Show Gist options
  • Save kurochan/24cf098e7ab1261f49af854a4fb7e747 to your computer and use it in GitHub Desktop.
Save kurochan/24cf098e7ab1261f49af854a4fb7e747 to your computer and use it in GitHub Desktop.
GCSの費用簡易計算
# 毎月増えるログの量
log_size = 500
# 何ヶ月先までのコストを計算するか
target_month = 12 * 5
# 1ドル何円換算するか
exchange_rate = 145
# 満何ヶ月後にnearlineに移動させるか
nearline_threshold = 12
# 満何ヶ月後にcoldlineに移動させるか
coldline_threshold = 24
# 満何ヶ月後にarchiveに移動させるか
archive_threshold = 36
# 満何ヶ月後に削除するか
delete_threshold = 1000
# GCPのストレージ単価
regional_cost = 0.02
nearline_cost = 0.01
coldline_cost = 0.007
archive_cost = 0.0025
cost = 0
regional_log = 0
nearline_log = 0
coldline_log = 0
archive_log = 0
(1..target_month).each do |i|
break if i > delete_threshold
regional_log += log_size
if i > nearline_threshold && nearline_threshold < delete_threshold
regional_log -= log_size
nearline_log += log_size
end
if i > coldline_threshold && coldline_threshold < delete_threshold
nearline_log -= log_size
coldline_log += log_size
end
if i > archive_threshold && archive_threshold < delete_threshold
coldline_log -= log_size
archive_log += log_size
end
cost +=
regional_log * regional_cost +
coldline_log * coldline_cost +
archive_log * archive_cost
puts "month: #{i}\tcost: #{cost.ceil}\tregional: #{regional_log}GB\tnearline: #{nearline_log}GB\tcoldline: #{coldline_log}GB\tarchive: #{archive_log}GB\ttotal: #{regional_log + nearline_log + coldline_log + archive_log}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment