こんにちは、技術推進部の佐藤です。
4 月ということもあり、社会人デビューをされた方たちを目にする機会が増えました。
「自分が若かった頃はこんなにしっかりしていたかな」などと懐かしんでいたら、ふと以前在籍していた会社で血の気が引くような失敗をしたことを思い出しました。
今回はそのお話をいたします。
ただ、その失敗から得た対策のおかげで、今まで 10 年以上もの間に一度も同じような失敗を起こしていません。
これからデータベースを触る方、今まで触っていても失敗したことがない方はご参考になれば幸いです。
- 何が起こったのか
- 背景
- 事件
- どう対処したか
- 初動
- その後
- 収束
- 学びとその後の対策
- 防止する仕組み
- 1. ターミナルソフトは本番環境が一目で分かるようにしておく
- 2. 指差し確認と声出し、そして他者の立ち会い
- 3. 読み取り専用ユーザーを作成しておく
- 起こった場合の対策
- バックアップを取っておく
- 防止する仕組み
- 最後に
何が起こったのか
背景
昔在籍していた会社でのことですが、オンプレにある自社ウェブアプリケーションを AWS 環境( EC2 + RDS )に移設するプロジェクトがありました。
その中で、私はデータベース( PostgreSQL )を RDS に移行する部分を担当しておりました。
基本的には既存データベースから dump ファイルを取得し、RDS へ流し込むだけの作業ですが、唯一のオーダーとして「文字コードは cp932 から UTF-8 に変えたい」というものがありました。
当時の私はこのオーダーを実現できるよう、RDS の設定変更や文字コードを変換しては dump ファイルを流し込み、文字化けしては DROP DATABASE を行う、という作業を繰り返していました。
事件
そんな繰り返し作業の最中に、うっかり事件を起こしてしまったのです。
続きを読む