こんにちは、ふじみや です。
前回、AWS Backup というサービスを利用してEC2インスタンスのバックアップを作成する方法についてご説明をしました。
この AWS Backup は、EC2インスタンスに限らず S3(Simple Storage Service)などのストレージや EFS(Elastic File System)などのファイルシステムのほか、DynamoDB や RDS(Relational Database Service)といたデータベースについてもバックアップを作成し、かつ一元管理ができるというものでした。
今回は、バックアップの対象はEC2インスタンスに付属される EBS(Elastic Block Store)のみとはなりますが、より手軽にEC2インスタンスのバックアップが出来る方法を2つご説明をします。
インスタンスからAmazonマシンイメージ(AMI)を作成
インスタンスからAMIを作成することで、手軽にバックアップを作成することが可能です。
AMIとは
AMI は、EC2インスタンスを起動する際にどういうシステム構成にするか(どのOSを利用するか等)を定めた起動用のテンプレートで、既にあるEC2インスタンスと全く同じ構成で新しくインスタンスを立ち上げてサーバーの負荷を分散させたい、といったときなどに特に役立つ機能です。
そのため、AMIを保存しておけば作成時点と同じ状況のEC2インスタンスを作ることが簡単にできる、というわけです。
AMIの作成方法
まず、EC2の管理画面より、左ペイン内の ▼ インスタンス より インスタンス をクリックしてインスタンスの管理画面を表示させましょう。
次にバックアップを作成したいインスタンスを選択し、上部にある アクション ▼ 内の イメージとテンプレート ▶ より イメージを作成 をクリックしてください。
イメージ作成画面に変わったら、イメージ名 と イメージの説明 、タグ を入力して イメージを作成 をクリックしてください。
たったこれだけでAMIの作成は完了し、同時にストレージ内のデータについてもバックアップの作成が完了しました。なお、作成したAMIについては、左ペイン内の ▼ イメージ 内にある AMI をクリックすると確認することができます。
スナップショットとAMIを作成してバックアップを取得
上記のやり方以外でも スナップショット と呼ばれる機能を使用し、また AMI にインスタンスの起動テンプレートを保存しておくことで、AWS Backupと同様に簡単にバックアップが作成できます。
インスタンスからイメージを作成している間にスナップショットも同時に作成しているのですが、こちらはスナップショットとAMIを個別に作成をしていく点で異なります。
スナップショットとは
スナップショットとは写真の撮影方法でも使われている言葉です。
日常の中で、目の前の光景や出来事、人物などを一瞬のうちに素早く撮影する撮影技法、またはそうして撮られた写真のこと。
コトバンク
これをAWSの機能で表すと、ストレージに保存されているある瞬間の状態についてバックアップを作成する、といった意味になります(正確な表現ではないかもしれませんが。。)。
バックアップとスナップショットの違い
この記事では分かりやすくお伝えするため、「バックアップ」と「スナップショット」を同じ意味で使用しています。しかしながら、AWSでは両者は異なる定義をしているようです。
- バックアップ・・・データ全てについてバックアップを作成する フルバックアップ
- スナップショット・・・前回のスナップショットからの変更部分のみバックアップする 増分バックアップ
フルバックアップ や 増分バックアップ の違いについては以下のようなイメージです。また、似た言葉に 差分バックアップ という言葉もありますので、こちらもご参考までにイメージにしています。
フルバックアップのほうが障害が発生した場合の復元は簡単ですが、バックアップ作成には時間を要し、また保管されるデータの量も大きくなりがちです。
他方、増分バックアップは前回バックアップからの変更点のみを新たにバックアップしますので、バックアップ作成は短時間で終わるとともに保管されるデータ量も少なくてすみますが、その分障害時のデータ復元は複雑になるという特徴があります。
スナップショットの作成方法
まず、EC2の管理画面を表示し、左ペイン内の ▼ Elastic Block Store から スナップショット をクリックしてください。次に、画面右上にある スナップショットを作成 をクリック。
スナップショットの設定では次のように入力をして、最後に右下にある スナップショットを作成 をクリックすればスナップショットの設定は完了です。
項目 | 設定内容 |
---|---|
リソースタイプ | ボリューム |
ボリュームID | 対象のボリュームを選択 |
説明 | 適宜入力 |
スナップショットが完了するまでは少し時間がかかりますので、焦らず待ちましょう。
スナップショットの作成が完了したら、次はスナップショットを元に AMI を作成します。
スナップショットからAMIの作成
スナップショットを作成 の左側にある アクション ▼ から スナップショットからイメージを作成 をクリック。そうすると、イメージ設定の画面になりますので、次の通りに入力してください。
項目 | 設定内容 |
---|---|
イメージ名 | BackUp |
説明 | 適宜入力 |
アーキテクチャ | スナップショットの元となったインスタンスと同じ |
ルートデバイス名 | デフォルトのまま |
仮想化タイプ | デフォルトのまま |
ブートモード | デフォルトのまま |
ブロックデバイスマッピング については、スナップショット元となったインスタンスと同じ設定にしておくので良いかと思います(私はデフォルト以外にしたことがありませんが。)。
このとき、アーキテクチャ については元となったインスタンスと同じ設定にしましょう。インスタンスタイプが t3 や t3a の場合には x86_64 を、t4g の場合には arm64 を選択するようにしてください。これを変えてしまうとインスタンスは起動できるもののSSH接続ができないといったことが起こりうるのでご注意ください。
入力後は イメージを作成 をクリックしてAMIの作成完了です。
左ペイン内の ▼ イメージ 内にある AMI をクリックすると作成したAMIを確認することができます。
定期的なスナップショットの作成
これまで、手動でバックアップを作成する方法についてご説明をしてきましたが、自動でバックアップを作成する Data Lifecycle Manager(DLM)という機能もEC2にはあります。こちらのセクションでは、DLMを使用した自動バックアップの方法についてご説明します。
まず左ペイン内の ▼ Elastic Block Store から ライフサイクルマネージャー を選択し、画面右上にある 新しいライフサイクルポリシーを作成 から EBS-backed AMIポリシー を選択し、次のステップ をクリック。
次に、バックアップ作成の対象としたいリソースのタグを入力の上、追加を押下。ポリシーの説明とタグは適宜ご入力いただき、あとはデフォルトのままで右下にある 次へ をクリックしてください。
バックアップの作成スケジュールの設定画面になりますので、ご希望される頻度と保持しておきたいバックアップの数や日数を入力し、右下にある ポリシーを確認 をクリックし内容を確認したら ポリシーを作成 を押下してください。
DLMの管理画面に戻り、先ほど作成したポリシーが表示されていれば完了です。
スナップショットとAMIの削除
使わなくなったスナップショットやAMIの削除方法についてこのセクションではご説明をします。
AMIを作成すると元となったスナップショットをそのまま削除することはできず、まずはAMIの登録解除が必要になります。AMIの登録解除はAMIの管理画面にて削除したいAMIを選択し、アクション ▼ 内の AMIを登録解除 をクリックするだけです。
次にスナップショットの管理画面に移動し、削除したいスナップショットを選択のうえ、アクション ▼ 内の スナップショットの削除 をクリックしてください。
これでAMIとスナップショットの削除は完了です。
まとめ
今回はEC2のAMIやスナップショットを利用したバックアップの作成方法についてご説明をしました。
AWS Backupと比べると1GBあたりの料金は変わらないようですが、スナップショットのほうが増分バックアップである分、素早くバックアップが作成できるほか、必要となるデータ量も少なくてすみます。
とはいえ、障害発生時のことを想定するとフルバックアップも必要ですので、どちらが優れてる/劣っているということはありません。日常的にはAMI/スナップショットを利用し、インスタンスに大きな変更を加える際にはAWS Backupを利用するなど、上手く使い分けるようにしましょう。
なお、バックアップからインスタンスを復元する方法についてはこちらでご説明していますので、ご興味がございましたら是非ご覧ください。
それではまた。
コメント