目次
スナップショットはインフラ構築で必要
人為的ミスやアプリケーションエラー、ウイルス感染などによるデータ消失に備えて必ず行わなければいけない作業が、バックアップです。
しかし、バックアップを行うためにはサービスを一時停止しなければいけません。
グローバル化が進んでいる昨今では、常にシステムが稼働している場合が多く、どのタイミングでバックアップを行うかは重要な問題だといえるでしょう。
そして、サービスの静止点を設けておく技術がスナップショットです。
例えば、A、B、C、Dの4つから構成されるファイルにおいてスナップショットを発行した場合、Dに更新があったらD’という形で記憶されます。
このときファイルにはA、B、C、D’という最新の形が反映されますが、Dは上書きされずそのままの形で残るため、スナップショット発行時の状態がそのまま維持されます。
このように仮想的なイメージを保存しておくことで、ファイルに何かしらの障害が起きた場合でも、スナップショット発行時の状態まではすぐにデータを復旧させることができます。
スナップショットは万が一の場合に重要な役割を果たす、インフラ構築において欠かせない技術だといえるでしょう。
インフラエンジニアにも必要なスキル
スナップショットは、AWSエンジニアはもちろんのこと、インフラエンジニアにも必要なスキルです。
その効果としては、間違ってファイルを削除したりサーバがウイルス感染したりした場合でもすぐに元に戻せるということが挙げられます。
これだけだと普通のバックアップと変わりないように思えるかもしれませんが、スナップショットは作成時間が短いため素早くバックアップを作成することができ、保存容量も元データの1~2割程度で済みます。
さらに、自動でスナップショットを発行するように設定できるのも大きなメリットだといえるでしょう。
ただし、スナップショットにもデメリットはあります。
スナップショットは丸ごとデータをコピーするわけではないため、元データが破損すると復旧することができません。
そのことを理解したうえで、他のバックアップ方法と組み合わせながら活用することが重要です。
バックアップとの違いとは
スナップショットは、一見すると普通のバックアップと変わらないように見えますが、AWSのスナップショットの場合は「増分バックアップ」を採用しており、追加、変更があるデータのみ随時バックアップしています。
そのため保存容量は元のデータの1割~2割程度で済むというメリットがあります。さらに、自動でスナップショットを発行するように設定することができるのも大きなメリットのひとつです。作成時間も短く、バックアップを素早く作成することができます。
AWSのスナップショットのメリット4つ
AWSのスナップショットには、「ESB」のデータをバックアップすることができる優れたツールであり、同時に様々なメリットも存在します。
例えば、短時間でバックアップできること、ストレージコストを抑えられること、セキュリティが高いこと、ファイルを削除してしまっても安心であることなどです。ここでは「AWSスナップショット」を利用することの4つのメリットを紹介します。
1:短時間でのバックアップができる
AWSスナップショットは、短時間でのバックアップが可能です。増分バックアップの仕組みを利用することで「S3」にデータを保存しています。
増分バックアップとは、最初のバックアップ時にすべてのデータをバックアップし、2回目以降のバックアップ時に、前回のバックアップから追加、変更のあった箇所のみをバックアップする方法です。
増分バックアップを利用することで、ストレージの容量を抑え短時間でバックアップすることができるようになっています。
2:ストレージコストを抑えられる
普通のバックアップは、全てのデータを丸々バックアップする「フルバックアップ」またはフルバックアップ後に追加されたデータのすべてをバックアップする「差分バックアップ」を利用しています。
AWSのスナップショットは、増分バックアップを採用しているため、追加、変更があるデータのみをバックアップしていきます。よって、普通のバックアップと比べ、AWSスナップショットはストレージコストを抑えられるというメリットがあります。
3:ファイルを削除してしまっても安心
AWSスナップショットは、「万が一ファイルを削除してしまっても安心」というメリットがあります。AWSスナップショットによってバックアップを取っておくことで、「EBS」でファイルおよびデータを削除してしまった場合も復元ができ、安心してサービスを利用できます。
仮にスナップショットのファイルを削除してしまったとしても、スナップショットの固有データが削除されるだけで、各スナップショットでバックアップしているデータは残っています。
4:セキュリティが高い
AWSスナップショットを利用することで、ウイルスに感染しても安心というメリットがあります。AWSスナップショットは複数の「AWSリージョン」でデータを共有することができます。
またAWSスナップショットには、セキュリティ強度の高い「AWSリージョン」にある「S3」にデータを保存するので、仮に自分のパソコンがウイルスに感染したとしても、データの破損やデータの流出の心配がありません。
スナップショットの仕組み2つ
スナップショットは、ある「瞬間」でのソースコード・ファイル・ディレクトリ・データベースファイルなどその状態をEBSにバックアップするツールのことです。
スナップショットはEBSに保存されたデータの復元や、保存された内容を新たに復元するときなど、もとのボリュームのレプリカを作成できるため、様々な場面で役立ちますここではスナップショットの2つの仕組みについて紹介します。
増分バックアップを利用している
基本的にバックアップは、最初にデータをフルバックアップし、その後変更や追加のあった箇所をバックアップします。バックアップの手法には「増分バックアップ」と「差分バックアップ」があります。
増分バックアップは「前回のバックアップ」から追加や変更のあった箇所をバックアップする方法です。それに対し差分バックアップは、「初回のフルバックアップ」から変更や追加のあった箇所を「毎回」バックアップする方法です。
AWSスナップショットは、増分バックアップの仕組みを利用し、S3にデータを保存することで、ストレージの容量を圧迫することなくバックアップができるようになっています。
リストア処理方式である
リストア処理方式とは、万が一データに損失が起きた場合に、コピーしておいたデータから復元する処理方式のことです。AWSではスナップショットに基づき、もとのボリュームのレプリカを作成しデータを復元することが可能です。
スナップショットから作成されたボリュームは、バックグラウンドにおいてデータを読み込みながらそのデータを使用することができ、また読み込みが完了していないデータの要求に対しては、すぐに「S3」からダウンロードすることができます。
AWSのスナップショットの料金についての詳細3つ
AWSのスナップショットの料金は、「使用領域」と「変更分」によって料金が変動します。スナップショットで、最初にバックアップしたデータ量の大きさ、そして2回目以降にバックアップした時の追加、変更があったデータ量の大きさで料金が決まります。
もともと専有している「ストレージの大きさ」ではなくて、実際の使用領域と変更分によって料金が決まるため注意が必要です。ここでは、AWSのスナップショットの料金について詳しく紹介します。
1:料金の仕組み
AWSスナップショットの料金の仕組みは、固定料金ではなくて「保存されているデータの量」によって変動します。スナップショットの料金は、使用しているスナップショットのデータの大きさと、スナップショットの利用期間に基づいて決められます。
スナップショットの料金は、変更のあったブロックの分だけ請求されます。月ごとのデータ1GB当たりの料金は「0.05US$」となっています。
変更分と使用領域とは
スナップショットの課金対象となる「変更分」と「使用領域」とは、バックアップ時に「変更があったデータ」と利用している「ストレージの領域」のことです。
スナップショットの課金対象は、専有しているストレージに対してではなく、「実際に使用しているストレージの領域」に対してとなります。また、増分バックアップによって変更があった箇所に関しても課金対象となり、その「変更したデータの大きさ」によって料金は変動します。
料金の計算方法の例
AWSのスナップショットの料金の計算方法を、データの使用領域と変更分を例に挙げて説明してみます。
例えば、「10GBのデータ」のバックアップを保存して、その中で5GBのデータに変更を加えたとします。この場合にかかる料金は【10GB×0.05US$+5GB×0.05US$=0.75US$】となります。実際には、データの圧縮率などの様々な要件などにより多少の差はあります。
2:スナップショットの料金を表示する方法
スナップショットの料金は、月ごとのGB単位で計算されます。つまり「スナップショットのサイズ」と「スナップショットの保持期間」に対して請求されます。料金の詳細に関しては、「Amazon EBS」 の料金表をご覧ください。
スナップショットの料金を表示する方法は、次のような手順で行います。まず「請求およびコスト管理コンソール」を開きます。次にナビゲーションペインで「請求」を選択します。そして「サービス別の請求の詳細」セクションから、「Elastic Compute Cloud」を展開しましょう。
3:利用料の通知の受け取り方
AWSのスナップショット利用料の通知を受け取る方法は、「マネジメントコンソール」によって設定を行う必要があります。
まずAWSの「マネジメントコンソール」にログインします。次に「請求ダッシュボード」のアラートおよび通知から「請求アラート」を有効にします。その後「CloudWatch」のダッシュボードから「請求アラーム」を作成することで利用料の通知を受け取ることができるようになります。
Amazon EBSでスナップショットを作成する方法
Amazon EBSでスナップショットを作成するときには、以下の手順で行いましょう。
1.Amazon EC2 コンソールを開き、ナビゲーションペインで「Elastic Block Store」の 「Snapshots (スナップショット)」を選びます。
2.「スナップショットの作成」を選び、「リソースタイプの選択」 の「ボリューム」でボリュームを選択します。
3.スナップショットに関する説明文を入力します。
4.「Add Tag(タグの追加)」からタグを追加し、それぞれのタグにタグキーおよびタグの値を指定します。
5.「スナップショットの作成」を選ぶと、スナップショットの作成が完了します。
スナップショットを復元する方法2つ
AWSスナップショットを利用することで、「EBS(Elastic Block Store)」に保存されたインスタンスの復元やEBSに保存された内容を新しく復元することなどができます。
スナップショットはもともとのボリュームのレプリカを作成できるため、様々な場面で役に立つでしょう。ここでは、スナップショットを復元する2つの方法について説明します。
AMIを作成する
AMI(Amazon Machine Image)とは、インスタンス(AWSクラウドにある仮想サーバ)を起動するためのテンプレートのことです。AMIの作成方法はインスタンスからの作成とスナップショットからの作成の2種類があります。
AMIはEC2インスタンスの管理画面から取得することができます。まず、AMIを作成したい対象のインスタンスを選択します。管理画面上の「アクション」から「イメージ」を選び、さらに「イメージの作成」を選択します。
その後、AMIの設定画面において「イメージの名称」「イメージの説明」「ボリュームの設定」を行います。また「再起動しない」のオプションでAMI取得時の「インスタンス停止」を行わないように設定します。
「pending」のステータスが「available」に変わると作成は完了です。さらにAMIの「Visibly」を「Public」にすると、他のアカウントでもAMIを利用することができます。
インスタンスを立ち上げる
インスタンスを立ち上げるには、AMIの管理画面からAMIを選択し「Actions」から「Launch」を選択します。
その後インスタンスを作成するために必要な「インスタンスタイプ」や「ボリュームサイズ」などを決めてローンチすることで、インスタンスを立ち上げることができます。使用済みのAMIで不要なものがある場合は「Actions」の「Deregister」から削除することができます。
AWSエンジニアとしてスナップショットの使い方を学ぼう
AWSエンジニアが身に付けるべきスキルはAWSそのものを使いこなすスキル以外にも数多くあり、そのうちの1つがスナップショットを作成するスキルです。
AWSエンジニアだけでなく、インフラエンジニアにとってもインフラ構築の際に、スナップショットに関するスキルは欠かせないといえるでしょう。ぜひスナップショットについて学び、AWSエンジニアとしてスキルアップを目指してください。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。