AWSのスナップショットについてまとめています。
AWSのスナップショットの作成と復元
AWSのスナップショットは、スナップショット実行時点のストレージの全体像を、1つのイメージファイルとしてまるごと保存します。一般的に、容量の大きいデータをバックアップする際には、時間がかかり、コピー中はデータの矛盾が発生しないようディスクへの読み書きを停止する必要があります。
しかし、スナップショットの場合は、短時間で対象全体の保存ができるため、ほぼシステムの停止なしでデータを取得できるんですね。
スナップショットは、Amazon EC2やAmazon RDS、Amazon Lightsailの機能として利用できます。ただし、一部のケースを除いて、スナップショットはそのままでは、データ故障時の復旧には使えません。
Amazon EC2では、アタッチされているAmazon EBS(ブロック・ストレージボリューム)のスナップショットが取得できます。ルートボリュームに関しては、スナップショットからの復旧も可能になっています。データボリュームのスナップショットからの復旧は、できないようです。
関連)【アップデート】インスタンス実行中でも、EBSルートボリュームを 入れ替えたりスナップショットから復元することが可能に | SunnyCloud
【関連記事】
▶AWSのインスタンス Amazon EC2サービスの料金と使い方
【関連記事】
▶AWS EBSは、EC2ブロックストレージボリューム 暗号化やスナップショットも可能
Amazon RDSでは、DBインスタンスのストレージボリュームのスナップショットを作成できます。個々のデータベースだけではなく、DBインスタンス全体をバックアップできるんですね。シングルAZ構成のDBインスタンスでスナップショット作成時には、データベースインスタンスのI/Oが短時間停止します。DBインスタンスのサイズやクラスによっては数秒から数分の停止になります。マルチAZ構成のMariaDB、MySQL、Oracle、PostgreSQLはスナップショット中のI/O停止はありません。ただし、Microsoft SQL ServerだけはマルチAZでもスナップショット時にI/Oが一時停止します。
DBインスタンスのスナップショットからは、新規のDBインスタンスの作成が可能です。スナップショットを使って、稼働している既存のDBインスタンスへの復元を行うことはできません。
【関連記事】
▶AWSのデータベースサービス「Amazon RDS」とは?
Amazon Lightsailでは、インスタンス、データベース、ブロックストレージディスクのスナップショットを作成可能です。取得したスナップショットを使って、新しいインスタンスやブロック・ストレージディスクを構築することが可能。ただし、取得元のインスタンス自体をスナップショットで復元させることはできません。あくまで、新しいインスタンスやブロックストレージディスクを構築するベースにできるということですね。
なお、Amazon LightsailからEC2インスタンスに移行する際にもスナップショットを利用することができます。
【関連記事】
▶AWSのVPS、Amazon Lightsailの特徴と用途 EC2へのアップグレードも可能
AWSのスナップショットの作成
EC2インスタンスにアタッチされた、EBSボリュームのスナップショットを作成してみましょう。Amazon EC2の管理画面を開きます。
Amazon EC2は、AWSマネジメントコンソールの検索窓に「EC2」と入力して検索し、開くことができます。
【関連記事】
▶AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!
EC2の管理画面の左のナビゲーションペインより「Elastic Block Store」を選択肢、対象のボリュームにチェックをつけ、「アクション」のプルダウンメニューから「スナップショットの作成」を選択します。
スナップショットの作成画面が表示されます。「説明」にスナップショットの注釈をつけたり、タグの割当が可能です。「スナップショットの作成」をクリックします。
スナップショットは、Amazon S3上に作成されます。
【関連記事】
▶AWS S3ってどんなサービス?初心者向けに機能紹介
AWSのスナップショットでバックアップ インスタンスを復元する
取得したスナップショットは、EC2の管理画面のElastic Block Storeのスナップショットで確認できます。対象のスナップショットにチェックを入れ、「アクション」のプルダウンメニューから「スナップショットからボリュームを作成」で、スナップショットの内容でボリュームを作成できます。
スナップショットから作成したボリュームは、既存のデータボリュームをデタッチ後、手動でインスタントにアタッチすることで「復元」することができます。デタッチ~アタッチまでの時間、EC2インスタンスはデータボリュームにアクセスできません。
ただし、対象がルートボリュームの場合は、インスタンスを停止することなくスナップショットからルートボリュームの復元が可能です。既存のルートボリュームはデタッチされ、スナップショットから作成した新しいボリュームがアタッチされます。なお、デタッチされたボリュームが不要な場合は、手動で削除しておく必要があります。
AWSのスナップショットの料金
AWSのスナップショットの料金は、月当たりのギガバイト単位で計算されます。スナップショットのサイズと保持期間で課金されるんですね。
関連)ハイパフォーマンスブロックストレージの料金 – Amazon EBS の料金 – Amazon Web Services
通常のスナップショットは1GBを1ヶ月保管する場合で、0.05USD。Fast Snapshot Restoreは、スナップショットからボリュームを素早く復元できるオプションです。また、スナップショット操作用のAPIを操作する際にも課金されます。
- EBS スナップショット 1 か月に格納されたデータ 1 GB あたり 0.05USD
- Fast Snapshot Restore 有効化された各スナップショットおよび各 AZ で 1 DSU 時間あたり0.75USD
- Amazon EBS direct API
- ListChangedBlock および ListSnapshotBlock 1,000 件のリクエストあたり 0.0006USD
- GetSnapshotBlock 1,000 件の SnapshotAPIUnit あたり 0.003USD
- PutSnapshotBlock 1,000 件の SnapshotAPIUnit あたり 0.006USD
AWSのスナップショットのまとめ
- AWSのスナップショットは、Amazon EC2、Amazon RDS、Amazon Lightsailなどにそれぞれの機能として用意されている
- EC2の場合、AWSのスナップショットからボリュームの復元が可能。ルートボリュームの場合は、インスタンスを止めずに復元が可能。
- EC2のスナップショットは1GBあたり0.05USD。