AWS BackupでEC2インスタンスをまるごとバックアップ

# はじめに
AWS News Blog（13 JAN 2020）で発表された３つの新機能の中で特に気になったのが、EC2インスタンスを丸ごとバックアップ／リストアできる様になったこと。

・Amazon Elastic Compute Cloud（EC2）インスタンス全体をバックアップできるようになりました。
・バックアップを他のAWSリージョンにコピーできるようになりました。
・完全なファイルシステムではなく、Elastic File Systemファイルシステムから単一のファイルを復元できるようになりました。

https://aws.amazon.com/jp/blogs/aws/aws-backup-ec2-instances-efs-single-file-restore-and-cross-region-backup/

これはオンプレミス環境と同等のバックアップ運用ができる様になったと言う理解。
インフラエンジニアにとっては、とてもうれしいことだと思ったので簡単に検証してみた。

# 結果
バックアップ時にPingが２〜３回ほど落ちた（Ping打っていた端末側の問題か？）、タグが引き継がれ無いなど、正確な評価にはもうちょっと真面目に検証する必要があると思うけど、実運用に耐えれそうな感じがしました。リリースされたばかりなので、細かい設定の検証はこれから。今後のアップデートにも期待できそう。

# 検証メモ

ⅰ）前提
検証用として適当なインスタンスを作り、適当なアプリをインストールしておく。今回はチャットツールを事前にインストールし適当にコメントを書き込んでおく。
<img width="1198" alt="スクリーンショット 2020-02-01 17.33.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/a6735e80-6dee-e206-69a6-1ef74b302fae.png">

ⅱ）AWS Backupコンソール
マネジメントコンソールで、AWS Backupを開き「バックアッププランを作成」をクリック。
https://console.aws.amazon.com/backup/home
<img width="955" alt="スクリーンショット 2020-02-01 17.37.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/c44b3cb8-8ad0-dc47-eec8-dc08686c35a0.png">
「新しいプランを立てる」をクリックし、適当なバックアッププラン名を入力する。
<img width="763" alt="スクリーンショット 2020-02-01 17.41.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/6a1b61e1-814f-626e-8b6a-76c29802f7e4.png">

ⅲ）バックアップルールの設定
適当なルール名を入力して、スケジュールを設定。
<img width="762" alt="スクリーンショット 2020-02-01 17.42.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/2c5385c7-c67e-479c-cc19-7fdb7f6d5325.png">
バックアップウィンドウの開始時刻は「UTC」なので注意。
<img width="816" alt="スクリーンショット 2020-02-01 18.02.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/23220f27-ee7d-0c54-7e44-24ca98fcb05c.png">
<img width="762" alt="スクリーンショット 2020-02-01 17.43.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/a4d5c915-126e-0f0f-8a54-bbcd54373e0e.png">
「プランを作成」ボタンをクリック。
<img width="763" alt="スクリーンショット 2020-02-01 17.44.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/6ed3c47e-cd32-1a36-c977-b8512d9cf9a2.png">

バックアップルールが作成された。
<img width="1114" alt="スクリーンショット 2020-02-01 17.44.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/36a7466b-0e46-9922-8159-16a8a71495e7.png">

ⅳ）リソースの割り当て
作成したバックアップルールを選択し「編集する」ボタンをクリック。
適当なリソース割り当て名を入力し、バックアップ対象のリソースを設定。今回はEC2をインスタンスIDを選択しています。その後「リソースを割り当てる」をクリック。
<img width="811" alt="スクリーンショット 2020-02-01 17.47.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/0da01e49-25a4-6abb-34d8-2723d501ce47.png">

ⅴ）実行待ち
設定した時刻に実行されるのをのんびり待つ、問題なく完了したらしい。
<img width="539" alt="スクリーンショット 2020-02-01 18.46.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/4664bdb4-1c1e-fcae-b77e-65de3ffb2d04.png">
<img width="1080" alt="スクリーンショット 2020-02-01 18.46.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/7dc84773-d72c-7050-1398-aaa3841f852e.png">

ちなみに自宅のMacからEC2へPingを実行して確認していたところ、バックアップ時にPingが２〜３回ほど落ちた。

```
64 bytes from 3.214.4.84: icmp_seq=2785 ttl=231 time=299.146 ms
64 bytes from 3.214.4.84: icmp_seq=2786 ttl=231 time=413.337 ms
64 bytes from 3.214.4.84: icmp_seq=2787 ttl=231 time=227.798 ms
ping: sendto: Network is down
Request timeout for icmp_seq 2788
Request timeout for icmp_seq 2789
64 bytes from 3.214.4.84: icmp_seq=2790 ttl=231 time=272.853 ms
64 bytes from 3.214.4.84: icmp_seq=2791 ttl=231 time=205.645 ms
64 bytes from 3.214.4.84: icmp_seq=2792 ttl=231 time=212.596 ms
64 bytes from 3.214.4.84: icmp_seq=2793 ttl=231 time=215.758 ms
64 bytes from 3.214.4.84: icmp_seq=2794 ttl=231 time=232.996 ms
64 bytes from 3.214.4.84: icmp_seq=2795 ttl=231 time=257.120 ms
64 bytes from 3.214.4.84: icmp_seq=2796 ttl=231 time=270.620 ms
64 bytes from 3.214.4.84: icmp_seq=2797 ttl=231 time=286.021 ms
Request timeout for icmp_seq 2798
64 bytes from 3.214.4.84: icmp_seq=2798 ttl=231 time=1012.919 ms
64 bytes from 3.214.4.84: icmp_seq=2799 ttl=231 time=321.436 ms
64 bytes from 3.214.4.84: icmp_seq=2800 ttl=231 time=233.779 ms
```

Ⅵ）リストア
先ほどバックアップした復旧ポイントを選択し「復元」ボタンをクリック。
<img width="1080" alt="スクリーンショット 2020-02-01 20.34.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/a1a24e47-2257-00b2-89e1-540287a303dc.png">
復元先のネットワーク設定を選択。
今回は検証なのでインスタンスタイプをあえて変更（t3.smail→t2.micro）、セキュリティグループを異なるもの（default）に設定してみる。その後「バックアップを復元」ボタンをクリックししばらく待つ。
<img width="821" alt="スクリーンショット 2020-02-01 20.36.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/36a43e7c-432b-c0eb-42ec-661fc921e63f.png">
<img width="814" alt="スクリーンショット 2020-02-01 20.36.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/c89ee272-d9a2-ba3b-dadd-9453a1a876e9.png">

ⅶ）復元後の設定
復元された。インスタンスは指定していた通り「t2.micro」で、セキュリティグループは「Default」だったけど、タグ「Name:AWS Backup」が引き継がれていないこと、IPv4パブリックIPが設定されていない状態だったことは想定外。（良く考えれば当たり前か）
<img width="1196" alt="スクリーンショット 2020-02-01 20.51.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/73f677ff-728e-55ae-284f-f0b923de602b.png">

バックアップ元のインスタンスが起動しっぱなしだったので停止。IPv4パブリックIPの付け替え、セキュリティグループの変更を実施。
<img width="1201" alt="スクリーンショット 2020-02-01 20.55.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/3084f782-a181-9c0b-2f24-10eea1cc2bdc.png">
<img width="813" alt="スクリーンショット 2020-02-01 20.56.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/22d32915-6e86-ab04-df63-f976ce574dbe.png">
<img width="1197" alt="スクリーンショット 2020-02-01 20.56.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/ac3f1069-9f82-a271-68bd-b6c72fe21aae.png">

ⅷ）復旧確認
サーバにアクセスしデータが残っている（正しく復旧できている）ことを確認。投稿していたコメントとかアバター画像とか。あと、キーペアを使用したSSHでのリモートアクセスも出来た。
<img width="1397" alt="スクリーンショット 2020-02-01 21.45.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/317297/90ffa71b-51fd-831c-a06d-a496f8e01027.png">

#最後に
今回は単純なバックアップ／リストアの検証を行ったが、インフラエンジニアにとってはうれしいアップデートだった。ますます便利になり素直にうれしい。今回検証した環境は全削除しておいた。