この記事は 本番環境などでやらかしちゃった人 Advent Calendar 2025 1 日目の記事です。
私が所属しているサークル、ユニプロの役員の仕事を減らそうとリバースプロキシを立てたときにミスった話です。
初心者あるあるだとは思うので、誰かのミスを防ぐことができればと思います。
事件の背景
ユニプロの提供するWebサービスはサーバーのIPを秘匿化するため、Cloudflareのプロキシを使用しています。
しかし、Cloudflareの無料プランでは、100MB以上のファイルをアップロードできないという制限があります。
ユニプロはできるだけお金をかけないことを目標にしてるので、課金するつもりはないようです。
(とはいえ、ビジネスプランだとしても200MBまでしかアップロードできませんし、お金の無駄遣いですね。)
しかし、ユニプロではNextCloudなど100MBを超えるファイルをアップロードするサービスも提供されています。
その使っていたVPSがXserver VPSの無料プランです。
このサービスは、無料なこともあり数日ごとの手動更新が必要でした。
当時、ユニプロでは役員の人たちで大規模なプロジェクトをやっていたので、その更新をしていた役員の人が忙しそうでした。
自分にできることはないかと、このサーバーの管理を請け負うことにしました。
実際に建ててみる
このリバースプロキシは誰でも簡単にセットアップできるように、Ansible Playbookが準備されています。
Ansible とは
Ansible とは、yaml形式でテンプレートを用意しておき、コマンド1つでサーバーのセットアップを完了させることができるものです。
hosts.yamlというファイルにVPSなど、セットアップしたいサーバーのIPアドレスとSSHの情報を書き込むことで動作します。
IPの確認不足
私はAnsibleを使ったことがなかったものの、「なんとかなるだろ」とよく調べていませんでした。
そして悲劇は起こりました。
hosts.yamlにあろうことか、別のSSHサーバーのIPアドレスを入力してしまったのです。
「リバースプロキシする先だとおもうから、ユニプロのサーバーのIPでしょ」と普段使用しているリバースプロキシ元(サイトを実際にデプロイしているサーバー)のIPアドレスをしてしてしまいました。
さらに不幸なことに、このサーバーは、サークルメンバー全員が使用するサーバーで、そこにリバースプロキシが構築されてしまうというインシデントを発生させてしまいました。
事後処理
私はどうすべきかわからず、役員の人に結局頼ってしまいました。
結局役員の人の作業を増やしてしまうとかいう愚行を行ってしまったわけです。
幸いにも影響はなく、nginxとcertbotをアンインストールしてことは収束しました。
教訓
初めて使うやつはしっかり調べたほうがいいという話でした。
皆さんもこういうこと意外とあるんじゃないんですか?
意外とちゃんと理解してやってると思っても、READMEだけみて、詳しくみてなかったりetc...
ポイントをまとめると
- 初めて使うやつは調べるなり聞くなりする
- 自身がないやつはAIでもいいから聞きながらやる
- READMEだけでわかった気にならない
です。
みなさんもしっかり気をつけてやりましょうね。
私意外とこういうミスよくあるので、、、こわいですねぇ。