AWSスナップショットとは
AWSのスナップショットとは、任意のタイミングのシステムの状態を記憶するバックアップ機能の一種です。ここでは、AWSのスナップショットの概要・仕組みに加え、バックアップ・AMIとの違いについて説明します。
AWSスナップショットの概要・仕組み
AWSでのスナップショットは、Amazon Elastic Block Store (EBS)・Amazon S3で使うバックアップ機能です。Amazon EBSはブロックストレージ、Amazon S3はオブジェクトストレージの機能を持つサービスです。スナップショットはEBSの状態をバックアップデータとしてS3上に保存します。
スナップショットは、バックアップ機能の中でも増分バックアップの仕組みを利用しています。増分バックアップとは、1つ前のバックアップデータからの変更分を保存するものです。初回バックアップデータからの変更分を毎回保存する差分バックアップよりも、短時間で処理できます。
また、スナップショットはリストア処理方式を採用しています。リストア処理方式では、データ欠損などのトラブルが発生した際、バックアップしておいたデータを使ってシステムを元に戻す処理を実施します。
参考:Amazon Elastic Block Store (EBS)
AWSスナップショットとバックアップの違い
AWSのスナップショットとバックアップの大きな違いは、保存データの容量とバックアップにかかる所要時間です。増分バックアップ方式を利用するスナップショットは保存するデータが前回分からの変化分だけなので、全データを保存する一般的なバックアップより短時間で完了します。
同様の理由から、保存先のストレージ容量を節約できるのもスナップショットの特徴です。一方、システムデータ全体をバックアップするわけではないので、元データが何らかの理由で欠損した場合、復元ができなくなる可能性がある点には注意が必要です。
上記のような両者の特徴から、スナップショットとバックアップは適したタイミングでバランスよく使い分けることをおすすめします。日常的な処理はスナップショット、システムに大きな変更を加えた場合はバックアップ処理の実施を検討しましょう。
参考:AWS Buckup
AWSスナップショットとAMIの違い
ほかに似たようなバックアップ処理を実施するものにAmazon マシンイメージ(AMI)のバックアップがあります。AMIとはインスタンス作成に必要なOS・サーバーなどのソフトウェア構成などの情報を含む起動テンプレートです。
AMIはインスタンスの構成情報を含む点でスナップショットと異なります。スナップショットから作成でき、バックアップデータであるスナップショットを起動可能にするものです。
AWSスナップショットの利用料金
AWSでスナップショットを利用するにはコストがかかります。ここではAWSでスナップショットを利用した際の料金の考え方と、確認方法を紹介します。
保存したデータ量と保存期間で料金が決まる
AWSスナップショットの利用料金は、バックアップしたデータ量・保存期間によって変動します。課金の対象となるデータ量は、前回分から変更されたブロックに関する部分です。1ヶ月間に格納されたデータ1GBあたり0.05USDのコストが発生します。
料金の確認方法
EBSスナップショットの料金は、コスト管理コンソール上で確認できます。まず「請求およびコスト管理コンソール」を開きます。続いて「請求」を選択し、「サービス別の請求の詳細」から「Elastic Compute Cloud」を開くと、スナップショットを使用した料金を確認可能です。
AWSスナップショットを用いるメリット
通常のバックアップに加え、スナップショットを併用するメリットについて紹介します。メリットとしては、所要時間が短い点、ストレージ容量を温存できる点、自動化設定ができる点が挙げられます。
システムを止めずに短い所要時間でバックアップ可能
まず、通常のバックアップと比較して所要時間が短い点がスナップショットを利用するメリットです。システムのデータ全体ではなく、前回のバックアップからの更新分のみを保存するため、処理にかかる時間を短縮できます。
また、一般的なバックアップを実施するためにはサービスを一時的に停止する必要があります。これに対して、スナップショットはサービスを可動させたままバックアップを保存できます。
ただし、使用中のボリュームに対してスナップショットを実施すると、データの整合性に影響が出るリスクがあります。システム全体を停止する必要はありませんが、基本的には静止状態のボリュームに対してスナップショットを作成しましょう。
ストレージ容量を温存可能
増分バックアップの仕組みを利用するスナップショットなら、ストレージ容量の温存が可能です。毎回フルバックアップでストレージを消費するよりは、日常的な簡易バックアップはスナップショット作成で実施した方が、ストレージを節約できるでしょう。
また、基本的にEBSは使用したボリューム相当のコストが発生します。これに対してスナップショットは前述のとおり別途料金計算方法があり、結果的にストレージの利用コストを節約できます。
自動化の設定が可能
スナップショットは処理自体を自動化できる点もメリットの1つです。Amazon Data Lifecycle Managerというサービスを使えば、スナップショットとAMIの作成・削除・保持を自動化できます。
自動化の利点はいくつかありますが、1つはデータ保護の観点でバックアップの作成忘れを防げる点が挙げられます。加えて、古いバージョンのスナップショットを削除することで、ストレージの有効利用にもつながります。
参照:Amazon Data Lifecycle Manager
AWSスナップショットの作成手順
ここではスナップショットの作成手順について説明します。
スナップショットの作成手順
スナップショットを作成するには、まずインスタンスを静止状態にしましょう。書き込み中のボリュームに対してスナップショットを作成することも可能ですが、スナップショットを実行した瞬間までに書き込まれているデータのみが保存されるため、後で整合性が取れない可能性があります。
コンソールかOSからインスタンスを停止したら、スナップショットを作成するEBSを選択します。選択が完了したらスナップショットを作成しましょう。データ容量にもよりますが、数分程度で完了する場合もあります。
スナップショットを使ったデータの復元
データを復元するには、まず利用するスナップショットを選択します。選択したスナップショットからイメージを作成すれば、保存した瞬間のシステムの状態を復元できます。
AWSスナップショットを上手に活用して効率的にデータバックアップを取ろう
AWSのスナップショットは、バックアップよりも短時間かつ容量を抑えて、システムの状態を保持できる機能です。自動化を図ることもでき、AMIと併せて自動処理すれば、バックアップの取り忘れや、古いバージョンのバックアップデータによるストレージ圧迫を防止可能です。
一方、スナップショットは元データ破損時の復旧が困難である点や、システム構成などの情報を含まない点には気をつけましょう。一般的なバックアップやAMI作成と適切に併用すれば、効率的なバックアップ作成が実現できます。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから