先日、こちらのエントリーでこのブログをGrav on Docker で構築したと書きました。

しばらく運用してて、どうもポスト時に頻繁にエラーが起きたり、一時的にアクセス不能になるケースが増えてきたので原因を調べました。

結果としては、Lightsailのインスタンスサイズをスケールアップして解決したわけですが、今日はその際の調査メモを書きたいと思います。


Lightsailの仕様と対処理負荷

そもそも、LightsailのCPU処理は、EC2の下位インスタンスと同じでとても癖があります。

というのは、

  • 常時使えるCPUリソースはかなり低めに決まっている
  • 超えた分は、一時的には"バースト"され処理されるが、クレジットが尽きると、最低保証の処理リソースしか使えなくなる

というもの。

エラーが起きた時、30分ぐらい放置すると治った、というのはまさにこれのようだ。

細かい数値はこちらのページの解説をみるとよい。

Dockerを使う最低ライン

Docker自体のオーバーヘッドを考慮する時、そもそもLigthsailの512MBプランは無理そう、、というのが今回運用して明確になった。

なので、LightsailでDocker運用したい場合には、1GBのやつ(月5ドル)を使おう。

ちなみにCPUに関しては、キャパシティが2GB(月10ドル)までは倍増してゆくので、スケールアップするならそこまでのラインがよいだろう。それ以上は、ラウンドロビンやLBで分散した方が安くなりそう。

スケールアップ手順

Lightsailはスケールアップに関しては、めちゃくちゃ簡単だ。

公式ページにも書いてある通り、

  • スナップショットを取る
  • インスタンス停止する
  • "スナップショットから" 新規インスタンス生成を選択(通常のインスタン生成のリンクからではないことにだけ注意)
  • Static IPを付け替え
  • 正常に移行が確認できたら、古いインスタンスとスナップショットを削除

で終了である。

負荷状況の確認

今回の問題の切り分け、インスタンスの管理画面のメトリクス一覧のグラフをみると、簡単に可能だ。

常用できるキャパシティを超えているようなグラフだったら、スケールアップを検討すべき。ということである。

Previous Post Next Post

Blog書いてたらLightsailのスケールアップをした話