バックアップとは? 取得方法や取得単位、世代管理の方法を分かりやすく解説
データの消失、破損などに備えてあらかじめデータを別の保管場所に保存しておくことを「バックアップ」といいます。バックアップの取得方法、取得単位、世代管理の方法などバックアップの基礎知識について解説します。
※本稿は、SBクリエイティブ発行の書籍『AWS運用入門 改訂第2版(2025年7月18日発行)』の中から、アイティメディアが出版社の許可を得て一部編集の上、転載したものです。
バックアップとは
みなさんは過去にスマートフォンで撮影・保存した写真や動画をうっかり削除してしまった経験はありませんか。削除してしまったデータが大切なものであれば、とてもがっかりしたことでしょう。誤って削除した時のためにiPhoneであればiCloudと呼ばれるクラウドストレージにデータをコピー・保存しておくことでデータが完全に失われることを回避することができます。
このようにデータの消失、破損などに備えてあらかじめデータを別の保管場所に保存しておくことを「バックアップ」と呼び、バックアップから復元することを「リストア」と呼びます。
システム運用に欠かせないバックアップ
システム運用の現場においても、データベースのデータやシステムのログのバックアップはとても大切な業務です。うっかり削除してしまったデータが顧客情報や個人情報であれば会社の信頼を失うことは避けられません。データの消失、破損は人によるミスだけではなく、機器の故障やシステムのバグ、ウイルス感染などが原因となることがあります。原因は多岐にわたりますが、データを復旧してシステムを継続的に稼働し続けるためにバックアップやリストアは大切な取り組みです。バックアップを実施するにあたってよく検討される内容のうち、以下のAWSにおいても考慮すべき内容について紹介します。
- バックアップの取得方法
- バックアップの取得単位
- バックアップの世代管理
バックアップの取得方法
バックアップの取得方法には大きく「オフラインバックアップ」と「オンラインバックアップ」の2種類があります。
オフラインバックアップ
オフラインバックアップは、システムを停止した状態でバックアップを行う方法です。データの更新頻度が低く、頻繁なバックアップが必要ないシステムに適しています。頻度としては、週1回や月1回といった具合で取得します。注意すべきこととして、システム停止が可能な時間帯(バックアップウィンドウ)とバックアップ取得に必要な時間を把握することの2つが挙げられます。
オンラインバックアップ
オンラインバックアップは、システムを稼働させている状態でバックアップを行う方法です。データの更新頻度が高いシステムに適しています。ただし、システムを稼働させたままバックアップを取得するため、システムに負荷が掛かり、またストレージへの書き込み(保存)が多いシステムではデータの不整合が起きる可能性もあります。そのため、データの更新が少ない時間帯・利用者が少ない業務時間外の時間帯に取得するなど、バックアップ取得のタイミングには気を付けなければなりません。
バックアップの取得単位
運用するシステムのバックアップデータを取得する単位について説明します
ファイル単位のバックアップ
システムをファイル単位でバックアップする方法です。身近な例を挙げるとUSBメモリにバックアップとしてファイルをコピーする方法がこれにあたります。コピーするファイルが変更中の場合は、変更が適切に反映されない可能性があるため、一般的にはオフラインバックアップが推奨されます。
ファイル単位で取得したバックアップには、システムが保存しているデータのみが保管されています。そのためシステムが保存しているデータが何らかの理由で消失、破損してしまった場合はデータのリストアによる復旧は可能ですが、システム自体が破損してしまった場合はリストアによる復旧はできません。システムを維持する基盤運用の観点ではAWSでファイル単位のバックアップを取得することは多くありません。
イメージ単位のバックアップ
システムをイメージ単位でバックアップする方法です。イメージとは、ファイルやフォルダの構造を保ったまま複製・保存したデータです。イメージファイルをバックアップとして取得することでシステムが保存しているデータだけでなく、システム自体の構成情報(メタデータ)もあわせてバックアップとして取得することができます。そのため、データを保存しているシステム自体が何らかの理由で破損してしまった場合でも、システムの構成データとシステムが保存しているデータの両方をリストアしてシステムを復旧させることが可能です。各AWSサービスにバックアップ取得の機能があり、AWSにおけるバックアップはイメージ単位(個別のAWSリソース単位)で実施することが多いです。
バックアップの世代管理
バックアップの世代管理とは、最新のバックアップだけではなく、それ以前のバックアップも保存して管理することです。このバックアップとして保存し続ける数を「世代」と呼びます。例えば1日に1度バックアップを取得し、過去7日分のバックアップを保存している場合は「7世代」のバックアップを世代管理しているといえます。
バックアップの世代管理では、「1世代前のバックアップ」と「新しく取得するバックアップの差異」をどのように扱うかを考えます。例えば、もしもの時に備えて毎日バックアップを取得し、1年間(365世代)のバックアップを取得すると仮定します。バックアップもデータなので365世代も取得するとデータ量が増加し、コストがかさんでしまう可能性があります。そのためバックアップのデータの差異をどのように扱うのか考える必要があるのです。
世代管理では「フルバックアップ」「差分バックアップ」「増分バックアップ」の3つの方式からバックアップの差異の扱い方を考えます。AWSでは各AWSサービスにバックアップ取得機能が備わっており、ほとんどのサービスでは増分バックアップでバックアップが取得されます。
フルバックアップ
フルバックアップは、文字通り全てのデータをバックアップとして取得します。ただしバックアップするデータ量が多いほど時間がかかります。
差分バックアップ
差分バックアップは、前回のフルバックアップから「更新されたデータのみ」をバックアップとして取得します。そのためフルバックアップと比較して、取得するデータ量が少なくなります。リストアをする際は、フルバックバックアップと差分バックアップを足し合わせます。
増分バックアップ
増分バックアップは、前回のバックアップから更新されたデータをバックアップとして取得します。そのためフルバックアップや差分バックアップと比較して、1回のバックアップで取得するデータ量が少なくなります。しかし、リストアする際は増分バックアップを1つずつリストアしていくためリストアまでに時間がかかります。
リストアにおけるRTOとRPOの考え方
バックアップからリストアを行ってシステムを復旧させるには、ある程度のまとまった時間が必要です。また、リストアするデータ量が多ければ多いほど復旧に時間がかかります。しかしながら、システムを復旧させるということは、そのシステムおよびサービスは「復旧が完了するまでの間は利用できない」ということです。システムの復旧はとても大切な作業ですが、例えば復旧作業によってそのサービスが1カ月間利用できなければサービス利用者の業務・ビジネスに影響が出ます。そのためシステムを復旧させるにあたっては業務・ビジネスへの影響を考慮した目標復旧時間を決めておく必要があります。この考え方をRecovery Time Objective(RTO)と呼びます。
リストアによってデータを復旧したとしても、業務上必要なデータが復旧されていなければ業務が滞ってしまいます。そのため、バックアップしたデータをリストアによって復旧する場合に「どの時点までのデータ」を復旧させる必要があるのかを考えなければなりません。この考え方をRecovery Point Objective(RPO)と呼びます。RPOは短ければ業務・ビジネスへの影響は少なく、短いに越したことはありませんが、その分バックアップの頻度が高くなり、コストが上がります。そのため、そのシステムのデータの更新頻度やプロジェクトのコストなどを考慮して決定します。
書籍紹介
AWS運用入門 改訂第2版
著者:山﨑翔平/小倉大/峯侑資
SBクリエイティブ 3,520円
最新情報にアップデート!
AWSトップエンジニアが実践しているシステム運用の手法とコツ
本書では「最初に知っておきたいAWS運用のすべて」を体系立てて解説します。
システム運用で利用するEC2・IAM・RDSといった基本的なサービスはもちろん、意外と知らないバックアップ/リストア、セキュリティ統制、監査に関わるサービスも基本から丁寧に解説。
日々の運用業務の中で「なるべく楽に」「効率的に」AWSでシステムを運用する手法が満載です。
改訂第2版では、初版からさらにAWS運用に役立つサービスや機能を深掘りして、多数の追加解説を行っています。
Copyright © ITmedia, Inc. All Rights Reserved.