![見出し画像](https://assets.st-note.com/production/uploads/images/100875154/rectangle_large_type_2_ab7bec7233e53f8e29aa0e093e627374.png?width=1200)
GCEで無料で運用していた筈が課金されていた件
はじめに
完全に自分の無料枠への認識が甘かっただけでした。
![](https://assets.st-note.com/img/1679453040552-ttF0I4XaNX.png?width=1200)
原因
「1 GB の北米から全リージョン宛ての下りネットワーク(1 か月あたり、中国とオーストラリアを除く)」を超えていたからでした。
対策
原因が分かったので、振る舞いを変えます。今までは毎時で動作させていたものを必要最低限に絞ってトラフィック量を減らします。
今回は「24 * 7 = 168」→「8 * 5 + 10 * 2 = 60」約64%の削減に挑戦します。
スケジュールの作成
既存のスケジュールを削除し、新たに奇数時間ごとのスケジュールを作成します。
名前は任意、リージョンはインスタンスと同じ、CRON式を使用にチェック、開始時間を「0 1-23/2 * * *」、終了時間を「15 * * * *」、タイムゾーンは日本標準時とします。
タイムゾーンの変更
CentOS側の時間も日本時間に合わせます。
sudo timedatectl set-timezone Asia/Tokyo
シェルスクリプトの変更
土日…5時と7時以外は実行
月火水木金…7, 9, 13, 17時以外は実行
#!/bin/bash
function shutdown () {
sleep 5m
sudo shutdown -h now
}
function work1 () {
# work1
}
function work2 () {
# work2
}
function work () {
work1
work2
shutdown
}
weeknum="$(date +%u)"
hour="$(date +%H)"
# sat, sun
if (( weeknum == 0 || weeknum == 6 || weeknum == 7 )); then
if (( hour != 5 && hour != 7 )); then
work
fi
# mon, tue, wed, thu, fri
elif (( weeknum > 0 && weeknum < 6 )); then
if (( hour != 7 && hour != 9 && hour != 13 && hour != 17 )); then
work
fi
else
shutdown
fi
シャットダウンの前に5分スリープしているのは、コケたときの保険です。書かないと、SSH接続できなくなる可能性があるので書いたほうが良いとは思います。
効果
左側をみると明らかに小さくなっています。0.5円以上のものは2時間おきに動作させていた時のものです。なので、予想合計費用は来月にはもう少し下がると考えています。
![](https://assets.st-note.com/img/1679452846732-APKMPAY4zd.png?width=1200)
完全に0円にすることはできませんでしたが、10円以下4円以下なら税金かからないです(多分)。それなら許します。
追記1
消費税取れれてました…小数点以下切り捨て処理じゃないの…??
![](https://assets.st-note.com/img/1688967420561-GjFH8HO83B.png?width=1200)
追記2
消費税とられませんでした!やった!
![](https://assets.st-note.com/img/1688967291938-AmXANbJif5.png?width=1200)
推測ですが、小数点以下が発生した場合は四捨五入の処理になっている可能性があります。
おわり。
ここから先は
¥ 300
この記事が気に入ったらサポートをしてみませんか?