さくらVPSのサーバー上にNginx in Dockerでデプロイしていた本ブログをNetlifyに移行しました。

Table of Contents

経緯

さくらVPSのサーバが2019-05-15の夕方頃、マイニングマルウェアに感染しました。

ブログへアクセスできず、起動のためサーバのプロセスを確認したときに気付きました。
databogというプロセスがCPUを300%使っていました。

ランサムウェアやトロイの木馬に比べると、情報漏洩などが行われた可能性は低いです。
しかし、プロセスのkillをしても立ち上がり続け、cronを削除しても自動で追記されていました。

調べたところ、原因の特定と削除は困難なためサーバの初期化が推奨されていました。

なぜNetlifyか

NetlifyはモダンなWebプロジェクトを、ビルドやデプロイのフローも含めて管理できるSaaSです。

他の代替案としてはAWS S3を考えていましたが、以下の理由でNetlifyにしました。

  • CDNやGitHubと連携したCIがサービスに含まれる (ADN)
  • 以前の記事Netlifyを使ったときに使いやすかった
  • 無料範囲内に収まる

なぜ初期化をしなかったか

以下が理由です。

  • 初期化後の再構築が面倒だった (Infrastructure as Codeになっていない)
  • 再構築しても再びアタックされる恐れがあった
  • 健全なサーバ管理に限界を感じ、サーバレスで全てを運用しようか迷っていた
    • jenkinsユーザが乗っ取られたので、Jenkinsのプラグイン経由である可能性がある
  • CIサーバを自前で用意しなくても何とかなりそう (個人開発でしか使っていないため)

問題意識を感じていたところにちょうど事件が発生した… というところです。

移行作業でやったこと

以前の記事にも記載のとおりNetlifyの作業は簡単です。
スクリーンショットを交える必要もないので、主な対応を箇条書きにしてみました。

デプロイするまで

  1. Netlifyにプロジェクトを追加
  1. GitHubのApplicationで上記リポジトリをNetlify連携できるようにする

この状態でリポジトリにpushすると自動でビルド/デプロイされます。
この作業にかかる時間は数分です。

ドメインの向き先を変える

  1. NetlifyのDomain managementにブログのドメインを追加
  • 今回: blog.mamansoft.net
  1. ドメインプロバイダの管理画面からドメインのCNAMEレコードにNetlifyのホストを追加
  • 今回: ムームードメインに
    • サブドメイン: blog
    • 種別: CNAME
    • 内容: ...netlify.com

この作業にかかる時間は数分です。

HTTPS対応

1. NetlifyのDomain managementSSL/TLS certificateがOKになるのを待つ

NetlifyがLet' Encryptを使って証明書を取得してくれます。
指定ドメインで名前解決できるようになるまで待機する必要があり、今回の場合1~2時間ほど待ちました。

以前は自分で管理していたため、全てやってくれるのは楽ちんですね😄

総括

さくらVPSを解約して、Netlifyにブログを引っ越ししました。

問題に気付いてから1時間程度で引っ越しできたのはHugoのおかげです。 Wordpressから引っ越ししておいて良かったです。

Hugoから引っ越しした記事は下記になりますので、宜しければそちらもご覧下さい。