見出し画像

GCEで無料で運用していた筈が課金されていた件

はじめに

完全に自分の無料枠への認識が甘かっただけでした。

原因

「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時間おきに動作させていた時のものです。なので、予想合計費用は来月にはもう少し下がると考えています。

右の棒グラフは無料枠の範囲?

完全に0円にすることはできませんでしたが、10円以下4円以下なら税金かからないです(多分)。それなら許します。

追記1

消費税取れれてました…小数点以下切り捨て処理じゃないの…??

消費税¥1。

追記2

消費税とられませんでした!やった!

消費税¥0だって!エヘヘ

推測ですが、小数点以下が発生した場合は四捨五入の処理になっている可能性があります。

おわり。

いいなと思ったら応援しよう!

あかやす
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!