Edited at

webサービスの本番サーバーをダウンさせてしまった時に爆速で土下座する方法🙇‍♂️🙇‍♂️💦💦

こんにちわ。

れとるときゃりー(@retoruto_carry)です。よろしくね。


なにをしたか

運営している「みんなのボタンメーカー」というサービスのサーバーを誤って落としてしまった。

※ このサービスの開発に関する記事も書いているのでこっちも読んでね

「ツイッターでつぶやけるボタン」を簡単に作成できるサービスをリリースしました【個人開発】

復活させるまでの間、サービスを訪れた人に「サーバーがダウンしているのでしばらく待ってね」と伝えたい。

そのために、DNSを設定して、GitHub Pagesでホスティングした「サーバーがダウンしています」ページにリダイレクトするようにした。

順番に説明していく。


1. 誤ってサーバーを落とす


LINEで通知が来る

image.png

サーバーがダウンするとLINEに通知が来るようにmackerelというツールで設定している


実際にサービスを見に行くと落ちている

あっ....

スクリーンショット 2019-05-15 22.10.52.png


2. とりあえずtwitterで謝る🙏🙏

謝ろう



3. 「サーバーがダウンしています」ページを用意


GitHubレポジトリを作ってこんな感じのページをpush


index.html

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>sorry</title>
</head>
<body>
<p>ごめんwwwwwwサーバー落としちゃったwwww</p>
</body>
</html>


404.html

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>sorry</title>
</head>
<body>
<p>ごめんwwwwwwサーバー落としちゃったwwww</p>
</body>
</html>

スクリーンショット 2019-05-15 22.14.49.png

404.htmlにも同じ内容を用意することで、 https://btnmaker.me/hoge などで遷移して来たものも「サーバーがダウンしています」が表示できるようにする。

※ CNAMEというファイルは後でGitHub上で設定するので作らなくて良い。


4.GitHub Pageを有効にする

master branchを選択

image.png


5. webサーバーのDNSのCNAMEを変更して、上記で用意したページに向き先を変更


DNS上の設定

[ユーザー名].github.ioをCNAMEに設定

スクリーンショット 2019-05-15 23.52.24.png

※ コメントより追記


DNSの設定にはTTL(Time-To-Live)というのがあって、基本的にこの時間が経過しないとDNSの変更は反映されません。

CloudflareDNSはデフォルトのttlが300になっているので五分で反映されたけど、普通のDNSではttlが24hくらいになってることが多くて、ぜんぜん爆速じゃなくなるのでご注意ください。



GitHub上でのCNAMEの設定

Custom domainにbtnmaker.meなどのリダイレクト元を設定

スクリーンショット 2019-05-15 22.15.07.png


6.サイトを訪れた人全員に謝れるようになる🙏🙏

btnmaker.meに訪れた人は、全員このページを見ることになる

image.png


番外編


復活させよう

本番サーバーを復活させて、DNSのCNAMEをもとに戻す

元通りになった🎉🎉

スクリーンショット 2019-05-15 22.13.25.png


まとめ

webサービスを落としたら謝ろう🙏🙏🙏🙏


合わせて読んでほしい記事

このサービスの開発に関する記事も書いているのでこっちも読んでね

「ツイッターでつぶやけるボタン」を簡単に作成できるサービスをリリースしました【個人開発】


ここまで読んでくれた方へ

ここまで読んでくださりありがとうございます。

いいねやコメント、SNSでの共有等をしてくださると、今後の励みになります。よろしくお願いします。

良かったらツイッター(@retoruto_carry)もフォローしてね