コンテナにバックアップは必要か?
なぜコンテナなのでしょうか
ランサムウェアのように、それは「もし」ではなく「いつ」の問題です。コンテナーの使用は企業で増加し続けています。そして、Evaluator Groupの「2021年春のハイブリッドクラウド調査」の初期データによると、企業の29%が現在本番環境でKubernetesを使用しており、さらに40%がKubernetesをテスト中で、本番環境への移行を計画しているとのことです。
コンテナは仮想化の一種であり、Dockerは最も人気のあるコンテナプラットフォームです。コンテナは、アプリケーションを簡単にデプロイできる特殊な環境です。コンテナは軽量な仮想マシン(VM)と考えることができます。VMにはオペレーティング・システム(OS)のコピーが含まれ、コンテナは基盤となるOSを共有し、それぞれがコンテナ内で実行するアプリケーションに必要なファイル/画像とアプリケーション・ファイルのみを含みます。1つのVM上で実行される多数のコンテナは、他の場所で実行される同数のVMよりもはるかに少ないリソースしか消費しません。コンテナは通常、データベースやAPIサーバー、ロードバランサーなどのアプリケーションにサービスを提供するように設計されています。複数のアプリケーションが互いに通信する必要がある場合、ネットワーク上で個別にやり取りできる必要があります。
コンテナはバックアップが必要ですか
コンテナは、ステートフルまたはステートレスコンテナアプリケーションと呼ばれる、アプリケーションの状態を保持する必要がある環境で実行することができます。コンテナの実行状態をバックアップする必要がない場合、ステートレス アプリケーションとして実行されていると見なされます。これは、コンテナ内で実行されているアプリケーションによって保存されるデータがないことを意味します。これは、コンテナ・イメージのインスタンスを実行していることを意味します。
Kubernetesはコンテナオーケストレーターエンジンで、コンテナのライフサイクルを制御します。
これにより、コンテナインフラストラクチャのあらゆる部分に高可用性が追加されます。これはまた、あらゆるワークロードが必要に応じてコンテナを作成および削除できることを意味します。 残念ながら、多くの人はこの高可用性を災害からの復旧能力と混同しています。アプリケーションの近代化が進む中、開発者はコンテナによって簡素化されたマイクロサービス・アーキテクチャをステートフル・アプリケーションにも拡張できることを理解しています。
Kubernetesクラスターで実行されるステートフルなアプリケーションでは、次の質問/シナリオを考慮する必要があります:
- コンテナー内で実行されるステートフルなアプリケーションのデータを復旧するために、Kubernetesに組み込まれた高可用性は十分でしょうか
- アプリケーションをテスト/デベロッパー環境から本番環境へ、またはアップグレード前に本番環境からステージング環境へ移動する必要があるときに、誤った設定ファイルをデプロイしてしまった人為的なミスから復旧できますか
- ?
- 本番データから実行できない問題を再現、分析するために、TEST/DEV用のアプリケーションコピーを呼び出すことはできますか
これらの質問に対する答えに確信が持てない場合は、バックアップとDR戦略について検討する必要があります。
このシリーズの次のブログでは、バックアップが必要なデータと、HYCUを使用してコンテナをバックアップする方法について説明します。