do:kalaclism

『輝かしい青春』なんてなかった人のノート

Docker Container におけるデータバックアップの基本的な考え方

最初に結論

ぶっちゃけ、

Docker Container のデータのバックアップ

と聞くと、コンテナだとかイミュータブルなんとかだとか、そう言うのを連想して複雑に考えがちと思う (現に僕はそうだった) んですが、 基本的には、Docker のコンテナのバックアップの方法論は、

絶対にダウン or データロストしてはならないサーバのバックアップ

が、そのまま使えるかと思います。

もうちょっと具体的に

Docker Container のデータは基本的に色々しないと揮発する訳ですが、この条件そのものは、

Redis を全部オンメモリで運用してて、かつバックアップも取らなきゃいけない

みたいな状況の条件に近いのではないか、というのが僕の結論です。

つまり、Docker Container だからどうだとか、という話に持っていかず、

  1. 対象となるデータを持つホスト (場合によってはコンテナ) に対し
  2. マスターを無停止でミラーリング (レプリカを作る等) をして
  3. そのミラーに対してダンプなりでデータをバックアップする

という、ミッションクリティカルなサーバのデータを保全する手法、 と言う手法を、そのまま Docker container に当て嵌めてやれば、 まあ、考えかたとしては問題ないよね、っていう、それだけの話ですね。はい。

以上

ちなみに。

僕がこれに気がつけたのはつい最近で、かつ、実際にそれが通用するか、というのは試してないし、 そもそも Webサービスを運用しているサーバ運用の実践経験については僕はほぼ無いので、 まあ、この考え方で合っているかどうか、ってなるとちょっと怪しい面も有るんですが、 基本的には、

絶対に落したりデータ飛ばしてはならないサーバのバックアップ

を想定して作業すれば問題ないんじゃね? というのが今回の結論です。はい。